Tenho uma aplicação que esta funcionando perfeitamente bem sob o Tomcat 6, porém estou tentando faze-lo funcionar no Jetty 6, mas até o momento não consegui que ele venha a ler os arquivos .properties que estão dentro do diretório resources definido no meu classpath.
Minha estrutura de diretório no Eclipse WTP esta assim:
Meu arquivo .classpath:
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" path="src"/>
<classpathentry kind="src" path="resources"/>
<classpathentry kind="src" path="jasperFiles"/>
<classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.web.container"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
<classpathentry kind="output" path="WebContent/WEB-INF/classes/"/>
</classpath>
Veja que no classpath contém estas duas definições (Source Folder):
<classpathentry kind="src" path="resources"/>
<classpathentry kind="src" path="jasperFiles"/>
E dentro destas pastas estão os arquivos .properties que o jetty deverá ler durante a execução da aplicação.
NOTA: Nesta pasta estão os arquivo de mensagens para cada um dos relatórios em JASPER e o arquivo de internacionalização.
No meu web.xml esta configurado assim:
<!-- CONTEXT Configuration -->
<context-param>
<param-name>javax.servlet.jsp.jstl.fmt.localizationContext</param-name>
<param-value>pt_BR</param-value>
<param-value>messages</param-value>
</context-param>
Meu arquivo messages.properties (esta localizado dentro da pasta resources):
estado.titulo=Cadastro de estados
estado.detalhes.titulo=Detalhes do Cadastro do Estado
estado.nome.rotulo=Estado
estado.uf.rotulo=UF
estado.pais.rotulo=País
estado.aba.novo=Novo Estado
estado.aba.lista=Lista Estados
estado.aba.pesquisa=Pesquisa
estado.status=Status
Com isso eu consigo usar o JSTL de mensagens (funcioando sob o TomCat), exemplo:
<label for="estado.nome"><fmt:message key="estado.nome.rotulo"/>:</label>
<input type="text" tabindex="2" name="estado.nome" id="estado.nome" value="${estado.nome}" maxlength="50" size="130" class="campo" onKeyUp="return UpperCase(this, event);"/>
Porém isso não funciona sob o jetty, conforme imagem:
Meu arquivo de configuração sicp.xml (localizado no diretório contexts do Jetty)
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE Configure PUBLIC "-//Mort Bay Consulting//DTD Configure//EN" "http://jetty.mortbay.org/configure.dtd">
<Configure class="org.mortbay.jetty.webapp.WebAppContext">
<Set name="contextPath">/sicp</Set>
<Set name="war"><SystemProperty name="jetty.home" default="."/>/webapps/sicp.war</Set>
<Set name="extractWAR">true</Set>
<Set name="copyWebDir">false</Set>
</Configure>
Meu arquivo de LOG (/etc/jetty/logs/2010_10_04.stderrout.log):
2010-10-04 10:40:31.629:INFO::jetty-6.1.25
2010-10-04 10:40:31.715:INFO::Deploy /etc/jetty/contexts/test.xml -> org.mortbay.jetty.webapp.WebAppContext@123b25c{/,/etc/jetty/webapps/test}
2010-10-04 10:40:31.760:INFO::Deploy /etc/jetty/contexts/javadoc.xml -> org.mortbay.jetty.handler.ContextHandler@79a2e7{/javadoc,file:/etc/jetty/javadoc/}
2010-10-04 10:40:31.821:INFO::Deploy /etc/jetty/contexts/test-jndi.xml -> org.mortbay.jetty.webapp.WebAppContext@949f69{/test-jndi,/etc/jetty/contexts/test-jndi.d}
2010-10-04 10:40:31.839:INFO::Deploy /etc/jetty/contexts/sicp.xml -> org.mortbay.jetty.webapp.WebAppContext@f47bf5{/sicp,/etc/jetty/webapps/sicp.war}
2010-10-04 10:40:32.509:INFO:/:Transparent AsyncProxyServlet @ /google to http://www.google.com
2010-10-04 10:40:32.576:INFO::No Transaction manager found - if your webapp requires one, please configure one.
2010-10-04 10:40:32.768:INFO::Extract /etc/jetty/webapps/sicp.war to /etc/jetty/work/Jetty_0_0_0_0_8080_sicp.war__sicp__q3h9fx/webapp
2010-10-04 10:40:38.443:WARN::Unknown realm: Test JAAS Realm
2010-10-04 10:40:38.558:INFO::Opened /etc/jetty/logs/2010_10_04.request.log
2010-10-04 10:40:38.575:INFO::Started SelectChannelConnector@0.0.0.0:8080
log4j:WARN No appenders could be found for logger (org.displaytag.export.ExportViewFactory).
log4j:WARN Please initialize the log4j system properly.
Deve existir alguma configuração que eu não estou aplicando para que o Jetty entenda e carregue os arquivos .properties.
Peço orientações, pois só falta isso para colocar o Jetty em produção.
Obrigado e fico no aguardo.