Erro em aplicação STRUTS - tags-bean

6 respostas
LECHNER

Pessoal criei uma aplicação chamada StrutsTeste e segui um e da este erro…
Pelo que entendi é o URI que está errado seria isto?

Minha aplicação:
<%@ taglib uri=“http://struts.apache.org/tags-bean” prefix=“bean” %>
<html>
<head><title><bean:message key=“site.titulo”/></title></head>

<body>

<bean:message key=“menu.nome”/>


</body>

</html>

Mas o mesmo aconteceu com uma aplicação exemplo que vem no Struts que baixei “strutsel-exercise”.

Podem me ajudar?

type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

org.apache.jasper.JasperException

org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:372)

org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)

org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)

javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

root cause

java.lang.NullPointerException

org.apache.struts.taglib.TagUtils.retrieveMessageResources(TagUtils.java:1174)

org.apache.struts.taglib.TagUtils.message(TagUtils.java:1037)

org.apache.struts.taglib.bean.MessageTag.doStartTag(MessageTag.java:224)

org.apache.jsp.beanMessageResource_jsp._jspx_meth_bean_message_0(beanMessageResource_jsp.java:87)

org.apache.jsp.beanMessageResource_jsp._jspService(beanMessageResource_jsp.java:55)

org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)

javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)

org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)

org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)

javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

6 Respostas

thiago.correa

Não é isso não, está faltando um arquivo que contém as menssagens da tua aplicação struts, ele pode ser facilmente identificado no teu arquivo struts-config.xml através da seguinte linha

<message-resources parameter="resources.application" null="false"/>

Onde resources.application é o nome do arquivo que contém as chaves com as suas respectivas mensagens do sistema!

LECHNER

Mas entao eu tenho um arquivo chamado:
MessageResources.properties
Onde tem o cod:
site.titulo=Teste de Struts
menu.nome=Lechner

A pagina que chamo e da erro:
<%@ taglib uri=“http://struts.apache.org/tags-bean” prefix=“bean” %>


não seria isso?

J

Veja se lá no seu arquivo struts-config.xml está escrito da maneira correta.

Veja o exemplo utilizado num projeto aqui com vários módulos:

<!-- Definicoes de Message-Resources -->
<message-resources 
parameter="br.com.sistema.view.resources.ApplicationResources,
br.com.sistema.view.resources.ApplicationResources-Contratos,
br.com.sistema.view.resources.ApplicationResources-Controle,
br.com.sistema.view.resources.ApplicationResources-CorrespPet,
br.com.sistema.view.resources.ApplicationResources-Empresa,
br.com.sistema.view.resources.ApplicationResources-Financeiro,
br.com.sistema.view.resources.ApplicationResources-Juridico,
br.com.sistema.view.resources.ApplicationResources-Marcas,
br.com.sistema.view.resources.ApplicationResources-Patentes,
br.com.sistema.view.resources.ApplicationResources-Tabelas,
br.com.sistema.view.resources.ApplicationResources-Pastas"/>
LECHNER

O meu struts-config.xml, possui o arquivo de mensagens:

Da o seguinte erro:

javax.servlet.ServletException: Missing message for key “menu.titulo”	org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:825)

org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:758)

org.apache.jsp.beanMessageResource_jsp._jspService(beanMessageResource_jsp.java:71)

org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)

javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)

org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)

org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)

javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

Valew

J

Mas LECHNER, veja bem…

Olhe o que eu postei lá…

O acesso aos arquivos de mensagens é formado pelo caminho completo da package que identifica o caminho físico do arquivo.

No seu exemplo só está escrito o nome do arquivo. Certifique-se que ele esteja no path da aplicação e, se você utiliza packages, coloque o caminho completo.

thiago.correa

LECHNER:

javax.servlet.ServletException: Missing message for key “menu.titulo”

Está faltando essa chave no seu arquivo *.properties

Criado 20 de abril de 2006
Ultima resposta 27 de abr. de 2006
Respostas 6
Participantes 3