Ajuda com os arquivos .xml do struts

:?: Estou estudando Struts pela apostila da Caelum, e estou com algumas dificuldades.

Tenho uma pagina jsp (testa-mesagens.jsp) para exibir umas mensagens.

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
    <%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<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>

e os seguintens arquivos .xml do struts:

struts-config.xml que está na pasta WEB-INF

<?xml version="1.0" encoding="UTF-8"?>
<struts-config>
<!--Arquivo de Mensagens-->
<message-resources parameter="MessageResources"/>
</struts-config>

struts.xml está na pasta Servers do tomcat

<?xml version="1.0" encoding="UTF-8"?>
<Context path="/struts docBase="/home/usuario/Ambiente_JEE/struts/"reloadable="true">
</Context>

e tem mais esses arquivos .properties que está na pasta src do projeto.

menu.nom = Nome do menu
menu.arquivo = Escolher Arquivo
menu.editar = Editar Arquivo
menu.sair = Sair da Aplicação
site.titulo = Sistema de teste do Struts

e web.xml que está em WEB-INF

<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_ID" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
	<display-name>
	struts</display-name>
	<welcome-file-list>
		<welcome-file>index.html</welcome-file>
		<welcome-file>index.htm</welcome-file>
		<welcome-file>index.jsp</welcome-file>
		<welcome-file>default.html</welcome-file>
		<welcome-file>default.htm</welcome-file>
		<welcome-file>default.jsp</welcome-file>
	</welcome-file-list>
	
	<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>

já olhei na apostila e parece que está tudo certo (só não tenho certeza se cada arquivo estão no seu local certo).
Quando tento exibir a página recebo o seguinte erro:

type Exception report

message 

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

exception 

org.apache.jasper.JasperException: Missing message for key "site.titulo" in bundle "(default bundle)" for locale pt_BR
	org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:460)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:355)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)


root cause 

javax.servlet.ServletException: Missing message for key "site.titulo" in bundle "(default bundle)" for locale pt_BR
	org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:841)
	org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:774)
	org.apache.jsp.testa_002dmensagens_jsp._jspService(testa_002dmensagens_jsp.java:88)
	org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:331)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)


root cause 

javax.servlet.jsp.JspException: Missing message for key "site.titulo" in bundle "(default bundle)" for locale pt_BR
	org.apache.struts.taglib.bean.MessageTag.doStartTag(MessageTag.java:233)
	org.apache.jsp.testa_002dmensagens_jsp._jspx_meth_bean_005fmessage_005f0(testa_002dmensagens_jsp.java:104)
	org.apache.jsp.testa_002dmensagens_jsp._jspService(testa_002dmensagens_jsp.java:59)
	org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:331)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)


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

:?: Alguem consegue identificar onde errei?

Desde já, obrigado.

Olá

Eu não sei se é esse o motivo do struts não encontrar o chave, mas recomendo você por o MessageResources.properties dentro de algum pacote.
exemplo: br/com/guj/
Ai no xml fica assim

<message-resources parameter="br.com.guj.MessageResources"/>  

Certifique-se que seu Default Output Folder está em: struts/WEB-INF/classes

caso não saiba onde: botão direito sobre seu projeto / Build Path / Configure Build Path
e na aba Source em Default output folder coloque: “seu projeto”/WEB-INF/classes

de um reload no tomcat.

[b]Eae galera blz?!?!?!?

Nossa, eu penei bastante tbm com as configurações do Struts, parece pouco, mas para quem ainda não está ambientando no mundo Web se torna um pouco difícil!

Bom, seguindo tbm o exemplo da FJ-21 da Caelum, tive o mesmo problema que a maioria, exibindo uma mensagem de erro como esta :

javax.servlet.ServletException: Missing message for key “site.titulo” in bundle “(default bundle)” for locale pt_BR

Para resolver isso é muito simples!

Basta vc ir até os diretórios no eclipse, e conferir a estrutura a partir do diretório /WEB-INF/src, veja que dentro dele existe um diretório de nome ‘java’ e dentro de java existe o famoso MessageResources.properties. Bom, aí é que está o erro, faça o seguinte, no próprio eclipse clique no arquivo MessageResources.properties arraste e solte dentro do diretório /WEB-INF/src, feito isso de um reload no tomcat e recarregue o browser, verás que sairá o resultado certo :slight_smile:

NOTA: lembre-se que isso seria o último passo desse pequeno problema que eu tive, e que muitas pessoas tiveram, e no entanto era somente alterar um caminho do diretório, mantenha o nome no struts-config.xml como MessageResource, mantenha tudo como está na apostila da Caelum!!

Espero ter ajudado!

[]'s

[/b]

Valeu. 8)

Já consegui resolver, mas valeu pela ajuda. :lol: