Problemas com Struts

Estou começando a trabalhar com struts, entretanto venho enfrentando alguns problemas que descreverei a seguir:
Tenho o seguinte código no arquivo index.jsp

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

<html:html locale="true">
  <head>
    <html:base/>
      <title><bean:message key="global.title"/></title>
  </head>
  <body>
  </body>
</html:html>

O arquivo /WEB-INF/web.xml está configurado da seguinte forma:

<?xml version="1.0" encoding="UTF-8"?>

<!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>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>details</param-name>
      <param-value>2</param-value>
    </init-param>
    <init-param>
      <param-name>validating</param-name>
      <param-value>true</param-value>
    </init-param>
    <load-on-startup>2</load-on-startup>
  </servlet>

  <servlet-mapping>
    <servlet-name>action</servlet-name>
    <url-pattern>*.do</url-pattern>
  </servlet-mapping>

  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>

  <taglib>
    <taglib-uri>/WEB-INF/tags/struts/struts-bean.tld</taglib-uri>
    <taglib-location>/WEB-INF/tags/struts/struts-bean.tld</taglib-location>
  </taglib>
  <taglib>
    <taglib-uri>/WEB-INF/tags/struts/struts-html.tld</taglib-uri>
    <taglib-location>/WEB-INF/tags/struts/struts-html.tld</taglib-location>
  </taglib>
  <taglib>
    <taglib-uri>/WEB-INF/tags/struts/struts-logic.tld</taglib-uri>
    <taglib-location>/WEB-INF/tags/struts/struts-logic.tld</taglib-location>
  </taglib>
  <taglib>
    <taglib-uri>/WEB-INF/tags/struts/struts-nested.tld</taglib-uri>
    <taglib-location>/WEB-INF/tags/struts/struts-nested.tld</taglib-location>
  </taglib>
  <taglib>
    <taglib-uri>/WEB-INF/tags/struts/struts-template.tld</taglib-uri>
    <taglib-location>/WEB-INF/tags/struts/struts-template.tld</taglib-location>
  </taglib>
  <taglib>
    <taglib-uri>/WEB-INF/tags/struts/struts-tiles.tld</taglib-uri>
    <taglib-location>/WEB-INF/tags/struts/struts-tiles.tld</taglib-location>
  </taglib>

  <description>Embragec</description>
  <resource-ref>
    <description>DataSource</description>
    <res-ref-name>jdbc/campinaverde</res-ref-name>
    <res-type>javax.sql.DataSource</res-type>
    <res-auth>Container</res-auth>
  </resource-ref>
</web-app>

O arquivo struts-config.xml está configurado conforme listado abaixo:

<?xml version="1.0"?>

<!DOCTYPE struts-config PUBLIC
   "-//Apache Software Foundation//DTD Struts Configuration 1.1//EN"
   "http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd">
   
<struts-config>
  <message-resources parameter="Embragec" null="false"/>

</struts-config>

O arquivo .properties se encontra em /WEB-INF/classes com o nome de Embragec.properties

Quando chamo o arquivo index.jsp no navegador recebo a seguinte mensagem de erro:

javax.servlet.jsp.JspException: Cannot find message resources under key org.apache.struts.action.MESSAGE
	org.apache.struts.util.RequestUtils.retrieveMessageResources(RequestUtils.java:1103)
	org.apache.struts.util.RequestUtils.message(RequestUtils.java:1043)
	org.apache.struts.taglib.bean.MessageTag.doStartTag(MessageTag.java:294)
	org.apache.jsp.index_jsp._jspx_meth_bean_message_0(index_jsp.java:143)
	org.apache.jsp.index_jsp._jspx_meth_html_html_0(index_jsp.java:102)
	org.apache.jsp.index_jsp._jspService(index_jsp.java:69)
	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)

Alguma idéia do que pode estar acontecendo?
Obrigado

Tente com o arquivo web.xml abaixo:

<?xml version="1.0" encoding="UTF-8"?> 

<!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>action</servlet-name> 
    <servlet-class>org.apache.struts.action.ActionServlet</servlet-class> 
    <init-param>
      <param-name>application</param-name>
      <param-value>ApplicationResources</param-value>
    </init-param>
    <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>details</param-name> 
      <param-value>2</param-value> 
    </init-param> 
    <init-param> 
      <param-name>validating</param-name> 
      <param-value>true</param-value> 
    </init-param> 
    <load-on-startup>2</load-on-startup> 
  </servlet> 

  <servlet-mapping> 
    <servlet-name>action</servlet-name> 
    <url-pattern>*.do</url-pattern> 
  </servlet-mapping> 

  <welcome-file-list> 
    <welcome-file>index.jsp</welcome-file> 
  </welcome-file-list> 

  <taglib> 
    <taglib-uri>/WEB-INF/tags/struts/struts-bean.tld</taglib-uri> 
    <taglib-location>/WEB-INF/tags/struts/struts-bean.tld</taglib-location> 
  </taglib> 
  <taglib> 
    <taglib-uri>/WEB-INF/tags/struts/struts-html.tld</taglib-uri> 
    <taglib-location>/WEB-INF/tags/struts/struts-html.tld</taglib-location> 
  </taglib> 
  <taglib> 
    <taglib-uri>/WEB-INF/tags/struts/struts-logic.tld</taglib-uri> 
    <taglib-location>/WEB-INF/tags/struts/struts-logic.tld</taglib-location> 
  </taglib> 
  <taglib> 
    <taglib-uri>/WEB-INF/tags/struts/struts-nested.tld</taglib-uri> 
    <taglib-location>/WEB-INF/tags/struts/struts-nested.tld</taglib-location> 
  </taglib> 
  <taglib> 
    <taglib-uri>/WEB-INF/tags/struts/struts-template.tld</taglib-uri> 
    <taglib-location>/WEB-INF/tags/struts/struts-template.tld</taglib-location> 
  </taglib> 
  <taglib> 
    <taglib-uri>/WEB-INF/tags/struts/struts-tiles.tld</taglib-uri> 
    <taglib-location>/WEB-INF/tags/struts/struts-tiles.tld</taglib-location> 
  </taglib> 

  <description>Embragec</description> 
  <resource-ref> 
    <description>DataSource</description> 
    <res-ref-name>jdbc/campinaverde</res-ref-name> 
    <res-type>javax.sql.DataSource</res-type> 
    <res-auth>Container</res-auth> 
  </resource-ref> 
</web-app> 

Dê uma olhadinha nos logs do seu Servlet Container, pode ser que falte algum JAR no classpath da sua aplicação que esteja impedindo o Container de carregar o ActionServlet do Struts.

Se não me engano, vc precisa ter no mínimo Commons-Digester e Commons-BeanUtils no classpath para que o Struts funcione sem problemas…

[]'s

Só mais um detalhe:

[quote=“raguiar”] <init-param> <param-name>application</param-name> <param-value>ApplicationResources</param-value> </init-param>[/quote]

Segundo o livro Struts in Action, essa configuração está deprecated. Basta vc configurar <message-resources /> no struts-config.xml. :wink:

[]'s

A adição do Commons-Digester e Commons-BeanUtils no classpath resolveram o problema.
Obrigado a todos.