Problema com Struts

3 respostas
H

Olá,
Estou com um problema no struts. Na hora que vai mostrar a minha página de resposta dá a seguinte mensagem:

exception

javax.servlet.ServletException: Cannot find message resources under key org.apache.struts.action.MESSAGE
org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:825)
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:758)
org.apache.jsp.pages.respostapesquisa_jsp._jspService(respostapesquisa_jsp.java:194)
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)
org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1056)
org.apache.struts.action.RequestProcessor.processForwardConfig(RequestProcessor.java:388)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:231)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1164)
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:415)
javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

root cause

javax.servlet.jsp.JspException: Cannot find message resources under key org.apache.struts.action.MESSAGE
org.apache.struts.taglib.TagUtils.retrieveMessageResources(TagUtils.java:1233)
org.apache.struts.taglib.TagUtils.message(TagUtils.java:1082)
org.apache.struts.taglib.TagUtils.message(TagUtils.java:1057)
org.apache.struts.taglib.bean.WriteTag.retrieveFormatString(WriteTag.java:256)
org.apache.struts.taglib.bean.WriteTag.formatValue(WriteTag.java:326)
org.apache.struts.taglib.bean.WriteTag.doStartTag(WriteTag.java:234)
org.apache.jsp.pages.respostapesquisa_jsp._jspx_meth_bean_write_0(respostapesquisa_jsp.java:241)
org.apache.jsp.pages.respostapesquisa_jsp._jspService(respostapesquisa_jsp.java:151)
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)
org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1056)
org.apache.struts.action.RequestProcessor.processForwardConfig(RequestProcessor.java:388)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:231)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1164)
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:415)
javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

O meu web.xml é:

<?xml version="1.0" encoding="ISO-8859-1"?>

<!DOCTYPE web-app
  PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN"
  "http://java.sun.com/j2ee/dtds/web-app_2_2.dtd">

<web-app>
  <display-name>Starways</display-name>
  
  <!-- Standard Action Servlet Configuration (with debugging) -->
  <servlet>
    <servlet-name>action</servlet-name>
    <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
    <init-param>
      <param-name>config</param-name>
      <param-value>/WEB-INF/struts-config.xml</param-value>
    </init-param>
    <init-param>
      <param-name>debug</param-name>
      <param-value>2</param-value>
    </init-param>
    <init-param>
      <param-name>detail</param-name>
      <param-value>2</param-value>
    </init-param>
    <load-on-startup>2</load-on-startup>
  </servlet>


  <!-- Standard Action Servlet Mapping -->
  <servlet-mapping>
    <servlet-name>action</servlet-name>
    <url-pattern>*.do</url-pattern>
  </servlet-mapping>


  <!-- The Usual Welcome File List -->
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>


  <!-- Struts Tag Library Descriptors -->
  <taglib>
    <taglib-uri>/tags/struts-bean</taglib-uri>
    <taglib-location>/WEB-INF/struts-bean.tld</taglib-location>
  </taglib>

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

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

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

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

</web-app>

O meu struts-config.xml é:

<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" "http://struts.apache.org/dtds/struts-config_1_2.dtd">

<struts-config>
  <form-beans>
    <form-bean name="pesquisaActionForm" type="archeslib.PesquisaActionForm" />
  </form-beans>
  <action-mappings>
    <action path="/pesquisaAction" type="archeslib.PesquisaAction" name="pesquisaActionForm" scope="request" validate="true" input="/pesquisa.jsp">
      <forward name="pesquisaOk" path="/pages/respostapesquisa.jsp" />
      <forward name="pesquisasemresultado" path="/pages/pesquisa.jsp" />
    </action>
  </action-mappings>
</struts-config>

e a minha página de resposta() é:

<!-- Copyright 2003 Herlen Costa -->

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

<%@ page import="bd.DdocService" %>
<%@ page import="dto.Ddoc" %>
<%@ page import="java.util.List" %>

<html:html locale="true">
<head>
<title>Example 1</title>
<html:base/>
</head>
<body bgcolor="white">

<h3>Example 1</h3>
<html:errors />

<%
        List DdocList = DdocService.getInstance().getDdocList();
        request.setAttribute("Ddocs", DdocList);
%>
<p>List of Ddocs in <code>Ddoc</code> table of database <code>test</code>.</p>
<table border=1>
<!-- This code will iterate over the list of Ddocs, creating a table
        row for each Ddoc. -->
<logic:iterate id="element" name="Ddocs" scope="request" type="dto.Ddoc" >
<tr>
   <td><bean:write name="element" property="id" /></td>
        <td><bean:write name="element" property="titulo" /></td>
</tr>
</logic:iterate>
</table>
<p>Sumbit to add an Ddoc:</p>

<!-- This form will post the submitted data to the addDdoc Action Mapping -->
<html:form action="pesquisa.jsp" method="post">
<table border=1>
<tr><td>name:</td><td><html:text property="id" /></td>
<td>description:</td><td><html:text property="titulo" /></td></tr>
</table><br/>
<html:submit />
</html:form>
</body>
</html:html>

Alguém sabe o que pode estar acontecendo de errado? Uso a versão 1.2.4 do struts.

Obrigado,
Herlen

3 Respostas

Rafael_Nunes

Não tá achando o seu arquivo de mensagens, geralmente o application.properties.

Faltou no seu struts-config:

&lt;message-resources parameter="resources.application" /&gt;

Sendo que o parameter é o caminho do arquivo.
Por exemplo este meu está em WEB-INF/classes/resource/application.properties

H

Rafael Nunes:
Não tá achando o seu arquivo de mensagens, geralmente o application.properties.

Faltou no seu struts-config:

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

Sendo que o parameter é o caminho do arquivo.
Por exemplo este meu está em WEB-INF/classes/resource/application.properties

Valew rafael, deu certo. Eu tinha pesquisado sobre isso e vi que era por aí, mas não estava dando certo. estava colocando o valor do parâmetro errado.

Obrigado,
Herlen

Nilton_Santos

Pessoal, estou com um problema semelhante e estou em aperto devido o prazo para solução,
A aplicação funciona normalmente no pc, entretanto no servidor ao abri-la da a mensagem:

cannot find message resources under key org.apache.struts.action.MESSAGE

no struts-config-xml:

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

alguém tem uma dica?

Criado 23 de março de 2005
Ultima resposta 24 de ago. de 2010
Respostas 3
Participantes 3