Arquivo de mensagens do Struts

9 respostas
O

Olá todos eu estou começando com o Struts.
Eu estou utilizando o exemplo do arquivo de mensagens da apostila fj21 da caelum.
Só que estar gerando erro.

meu arquivo struts.config.xml

<struts-config>

<!-- Arquivo de Mensagens -->
<message-resources parameter="MessageResources" />
</struts-config>
meu arquivo web.xml
<?xml version="1.0" encoding="ISO-8859-1"?>   
  
<!DOCTYPE web-app   
    PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"  
    "http://java.sun.com/dtd/web-app_2_3.dtd">  
<web-app>
<servlet>
<servlet-name>testeDeStruts</servlet-name>
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>testeDeStruts</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
</web-app>
meu arquivo MessageResources.properties
# comentario de um arquivo .properties
menu.nome = Nome do menu
menu.arquivo = Escolher Arquivo
menu.editar = Editar Arquivo
menu.sair = Sair da aplicação
site.titulo = Sistema de teste do Struts

meu arquivo testa-mensagens.jsp

[code]
<%@ 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" /><br/>
<bean:message key="menu.arquivo" /><br/>
<bean:message key="menu.editar" /><br/>
<bean:message key="menu.sair" /><br/>
<bean:message key="site.titulo" /><br/>
</body>
</html>

estar gerando esse erro:

HTTP Status 500 -

--------------------------------------------------------------------------------

type Exception report

message

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

exception

org.apache.jasper.JasperException: The absolute uri: http://struts.apache.org/tags-bean cannot be resolved in either web.xml or the jar files deployed with this application
org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:51)
org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:409)
org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:116)
org.apache.jasper.compiler.TagLibraryInfoImpl.generateTLDLocation(TagLibraryInfoImpl.java:315)
org.apache.jasper.compiler.TagLibraryInfoImpl.(TagLibraryInfoImpl.java:148)
org.apache.jasper.compiler.Parser.parseTaglibDirective(Parser.java:420)
org.apache.jasper.compiler.Parser.parseDirective(Parser.java:483)
org.apache.jasper.compiler.Parser.parseElements(Parser.java:1433)
org.apache.jasper.compiler.Parser.parse(Parser.java:133)
org.apache.jasper.compiler.ParserController.doParse(ParserController.java:216)
org.apache.jasper.compiler.ParserController.parse(ParserController.java:103)
org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:153)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:314)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:294)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:281)
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:566)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:317)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:337)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)

note The full stack trace of the root cause is available in the Apache Tomcat/6.0.16 logs.

--------------------------------------------------------------------------------

Apache Tomcat/6.0.16

Desde de já eu agradeço pela ajuda.

9 Respostas

B

Deu erro na sua uri…
vc pode tentar colocar o struts-bean.tld na pasta WEB-INF e mudar a uri para

<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean"%>

[]'s

O

Eu fiz o que você mandou, mais agora esta dando esse erro.

HTTP Status 404 - /struts/testa-mensagens.jsp


type Status report

message /struts/testa-mensagens.jsp

description The requested resource (/struts/testa-mensagens.jsp) is not available.


Apache Tomcat/6.0.16

meu arquivo web.xml ficou assim:

<?xml version="1.0" encoding="ISO-8859-1"?>   
  
<!DOCTYPE web-app   
    PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"  
    "http://java.sun.com/dtd/web-app_2_3.dtd">  
<web-app>

<taglib>
    <taglib-uri>/WEB-INF/struts-bean.tld
    <taglib-location>/WEB-INF/struts-bean.tld
  </taglib>


<servlet>
<servlet-name>testeDeStruts</servlet-name>
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>testeDeStruts</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
</web-app>

meu arquivo testa-mensagens.jsp ficou assim:

<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean"%> 

<html>
<head><title><bean:message key="site.titulo" /></title></head>
<body>
<bean:message key="menu.nome" /><br/>
<bean:message key="menu.arquivo" /><br/>
<bean:message key="menu.editar" /><br/>
<bean:message key="menu.sair" /><br/>
<bean:message key="site.titulo" /><br/>
</body>
</html>
O

eu arrumei o arquivo web.xml

<?xml version="1.0" encoding="ISO-8859-1"?>   
  
<!DOCTYPE web-app   
    PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"  
    "http://java.sun.com/dtd/web-app_2_3.dtd">  
<web-app>

<taglib>
    <taglib-uri>/WEB-INF/tlds/struts-bean.tld</taglib-uri>
    <taglib-location>/WEB-INF/struts-bean.tld</taglib-location>
  </taglib>


<servlet>
<servlet-name>testeDeStruts</servlet-name>
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>testeDeStruts</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
</web-app>

e agora estar dando esse erro:

HTTP Status 500 -


type Exception report

message

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

exception

org.apache.jasper.JasperException: Failed to load or instantiate TagExtraInfo class: org.apache.struts.taglib.bean.CookieTei

org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:51)

org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:409)

org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:281)

org.apache.jasper.compiler.TagLibraryInfoImpl.createTagInfo(TagLibraryInfoImpl.java:419)

org.apache.jasper.compiler.TagLibraryInfoImpl.parseTLD(TagLibraryInfoImpl.java:250)

org.apache.jasper.compiler.TagLibraryInfoImpl.(TagLibraryInfoImpl.java:163)

org.apache.jasper.compiler.Parser.parseTaglibDirective(Parser.java:420)

org.apache.jasper.compiler.Parser.parseDirective(Parser.java:483)

org.apache.jasper.compiler.Parser.parseElements(Parser.java:1433)

org.apache.jasper.compiler.Parser.parse(Parser.java:133)

org.apache.jasper.compiler.ParserController.doParse(ParserController.java:216)

org.apache.jasper.compiler.ParserController.parse(ParserController.java:103)

org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:153)

org.apache.jasper.compiler.Compiler.compile(Compiler.java:314)

org.apache.jasper.compiler.Compiler.compile(Compiler.java:294)

org.apache.jasper.compiler.Compiler.compile(Compiler.java:281)

org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:566)

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

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

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

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

root cause

java.lang.ClassNotFoundException: org.apache.struts.taglib.bean.CookieTei

org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1360)

org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1206)

org.apache.jasper.compiler.TagLibraryInfoImpl.createTagInfo(TagLibraryInfoImpl.java:416)

org.apache.jasper.compiler.TagLibraryInfoImpl.parseTLD(TagLibraryInfoImpl.java:250)

org.apache.jasper.compiler.TagLibraryInfoImpl.(TagLibraryInfoImpl.java:163)

org.apache.jasper.compiler.Parser.parseTaglibDirective(Parser.java:420)

org.apache.jasper.compiler.Parser.parseDirective(Parser.java:483)

org.apache.jasper.compiler.Parser.parseElements(Parser.java:1433)

org.apache.jasper.compiler.Parser.parse(Parser.java:133)

org.apache.jasper.compiler.ParserController.doParse(ParserController.java:216)

org.apache.jasper.compiler.ParserController.parse(ParserController.java:103)

org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:153)

org.apache.jasper.compiler.Compiler.compile(Compiler.java:314)

org.apache.jasper.compiler.Compiler.compile(Compiler.java:294)

org.apache.jasper.compiler.Compiler.compile(Compiler.java:281)

org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:566)

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

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

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

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

note The full stack trace of the root cause is available in the Apache Tomcat/6.0.16 logs.


Apache Tomcat/6.0.16

furutani
java.lang.ClassNotFoundException: org.apache.struts.taglib.bean.CookieTei

Os jars do struts não estão no classpath da sua aplicação.

O

sim.

B

Estranho…tinha que resolver…como furutani falou,pode ser a falta de algum jar do struts no seu class-path…coloque todos eles e faça novamente o teste…

O

Galera eu conseguir colocar os jars certinho na pasta lib.

Mais agora esta aparecendo assim no bronser:

???pt_BR.menu.nome???
???pt_BR.menu.arquivo???
???pt_BR.menu.editar???
???pt_BR.menu.sair???
???pt_BR.site.titulo???

furutani

Não precisa do pt_BR.
Coloque só “menu.nome”…etc.

O

furutani eu não coloquei pt_BR e que isso estar aparecendo bronser quando eu rodo a aplicação.

Criado 13 de abril de 2008
Ultima resposta 11 de mai. de 2008
Respostas 9
Participantes 3