Solucionado (ver solução)
Solucionado
(ver solução)
6
respostas

HTTP Status 500 – Internal Server Error - na validação dos campos obrigatórios do projeto: casadocodigo/produtos/form

Não consigo resolver o problema de HTTP Status 500 – Internal Server Error

Root Cause

org.springframework.context.NoSuchMessageException: No message found under code 'field.required' for locale 'en_US'.

ja pesquisei em outros tópicos como resolvido este problema e outros relacionados e nenhum deles consegui solucionar..

HTTP Status 500 – Internal Server Error
Type Exception Report
Message An exception occurred processing [/WEB-INF/views/produtos/form.jsp] at line [16]
Description The server encountered an unexpected condition that prevented it from fulfilling the request.
Exception
org.apache.jasper.JasperException: An exception occurred processing [/WEB-INF/views/produtos/form.jsp] at line [16]

13:     <div>
14:         <label>Título</label> 
15:         <input type="text" name="titulo" />
16:         <form:errors path="produto.titulo" />
17:     </div>
18:     <div>
19:         <label>Descrição</label>

Stacktrace:
    org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:625)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:514)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:385)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:329)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
    org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:170)
    org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:314)
    org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1325)
    org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:1069)
    org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1008)
    org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:925)
    org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:974)
    org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:877)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:660)
    org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:851)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
    org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:200)
    org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)

Root Cause

org.springframework.context.NoSuchMessageException: No message found under code 'field.required' for locale 'en_US'.
6 respostas

Oi amigo, No seu projeto você tem os arquivos abaixo?

messages.properties
messages_en_US.properties
messages_pt_BR.properties

Todas soluções apresentadas no forum eu ja tentei.

Inclusive os tês arquivos no diretorio WEB-INF em outro diretorio mudando o path no AppWebConfiguration.

Para não ficar parado no curso retirei todas as validações do campos de input do form ex:

 <form:errors path="titulo" />

E todas as outras tags foram removidas para conseguir da continuidade.

Assim quando não tem todas informações da um refresh e volta para o formulário sem cadastrar o produto, contudo o ideal seria apresentar para o usuário que ele esqueceu algo do formulário o que não é possível por ter removido a função de validação.

Eu acredito que tem algo relacionado com o método:

ReloadableResourceBundleMessageSource

ou alguma anotação como sugerido no forum

@Bean(name="messageSource")

ou dependência no xml, contudo baixei o projeto e copiei as classes, icluí essa anotação, copiei os jsp, copiei o messages.propeties e as dependências do xml e também não rodou.

A configuração do seu message source está conforme abaixo?

@Bean
public MessageSource messageSource() {
    ReloadableResourceBundleMessageSource messageSource =
        new ReloadableResourceBundleMessageSource();

    messageSource.setBasename("/WEB-INF/messages");
    messageSource.setDefaultEncoding("UTF-8");
    messageSource.setCacheSeconds(1);

    return messageSource;
}

Se não rolar, sobe seu projeto no github e posta o link aqui pra eu dar uma olhada, por favor.

Segue link:

https://github.com/cleberleao/casadocodigo

solução!

Oi Cleber, tudo bem?

Analisando seu código, o message.properties está no diretório correto, porém está nomeado errado. No seu projeto os arquivos de mensagem estão com nome "messages.propeties" enquanto o correto é "messages.properties"

Também estão errados: "messages_en_US.propeties" e "messages_pt_BR.propeties"

Abraço!

Essa é a vida de programador onde um "r" faz uma diferença enorme!!

Obrigado pela correção! Estou na parte do curso onde iria manipular muitas informações (idioma) neste messages.properties!

Grato!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software