Re:"Cannot find ActionMappings or ActionFormBeans collection"

Saca um web.xml que eu tinha…

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

<!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>Sistema de Geração</display-name>
  
  <!-- Standard Action Servlet Configuration (with debugging) -->
  <servlet>
    <servlet-name>action</servlet-name>
    <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
    <!-- servlet-class>
         org.apache.struts.tiles.ActionComponentServlet
    </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>

  <!-- JSTL tag lib descriptors -->
  <taglib>
    <taglib-uri>http://java.sun.com/jstl/fmt</taglib-uri>
    <taglib-location>/WEB-INF/fmt.tld</taglib-location>
  </taglib>

  <taglib>
    <taglib-uri>http://java.sun.com/jstl/fmt-rt</taglib-uri>
    <taglib-location>/WEB-INF/fmt-rt.tld</taglib-location>
  </taglib>

  <taglib>
    <taglib-uri>http://java.sun.com/jstl/core</taglib-uri>
    <taglib-location>/WEB-INF/c.tld</taglib-location>
  </taglib>
  
  <taglib>
    <taglib-uri>http://java.sun.com/jstl/core-rt</taglib-uri>
    <taglib-location>/WEB-INF/c-rt.tld</taglib-location>
  </taglib>
  
  <taglib>
    <taglib-uri>http://java.sun.com/jstl/sql</taglib-uri>
    <taglib-location>/WEB-INF/sql.tld</taglib-location>
  </taglib>
  
  <taglib>
    <taglib-uri>http://java.sun.com/jstl/sql-rt</taglib-uri>
    <taglib-location>/WEB-INF/sql-rt.tld</taglib-location>
  </taglib>
  
  <taglib>
    <taglib-uri>http://java.sun.com/jstl/x</taglib-uri>
    <taglib-location>/WEB-INF/x.tld</taglib-location>
  </taglib>
  
  <taglib>
    <taglib-uri>http://java.sun.com/jstl/x-rt</taglib-uri>
    <taglib-location>/WEB-INF/x-rt.tld</taglib-location>
  </taglib>

  <!-- Ending tag lib descriptors -->

  <!-- Pager Tag Library Descriptors -->
  <taglib>
    <!-- <taglib-uri>http://jsptags.com/tags/navigation/pager</taglib-uri> -->
    <taglib-uri>/tags/pager</taglib-uri>
    <taglib-location>/WEB-INF/pager-taglib.tld</taglib-location>
  </taglib>
</web-app>

Tem coisa faltando nesse teu ai… e coisa com nome diferente… qq coisa copia e cola… claro que fazendo as devidas modificações.

Espero ter ajudado.

veja esse link o motivo do erro

http://www.geocities.com/Colosseum/Field/7217/SW/struts/errors.html

Aquele link acima tem a solução…

Saudações

Estou aprendendo a usar o framework Struts. Já consegui uma boa carga teórica, mas não consigo rodar nem uma única aplicação! No meu caso, estou tentando fazer uma simples aplicação de login com acesso a um JavaBean que “imita um banco de dados”, e apesar de ter feito conscientemente, tudo nos conformes, me vem o Tomcat com essa desgastante mensagem de erro que já me persegue há vários dias:

[color=darkblue] exception

javax.servlet.ServletException: Cannot find ActionMappings or ActionFormBeans collection
org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:848 )
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:781)
org.apache.jsp.index_jsp._jspService(org.apache.jsp.index_jsp:119)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:322)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

root cause

javax.servlet.jsp.JspException: Cannot find ActionMappings or ActionFormBeans collection
org.apache.struts.taglib.html.FormTag.lookup(FormTag.java:798 )
org.apache.struts.taglib.html.FormTag.doStartTag(FormTag.java:506)
org.apache.strutsel.taglib.html.ELFormTag.doStartTag(ELFormTag.java:324)
org.apache.jsp.index_jsp._jspx_meth_html_form_0(org.apache.jsp.index_jsp:226)
org.apache.jsp.index_jsp._jspService(org.apache.jsp.index_jsp:108 )
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:322)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
[/color]

Passei alguns dias procurando pela web, e encontrei muita gente enfrentando esse mesmo tipo de problema - e muita gente sugerindo as mais diversas soluções (desde algumas prudentes até outras bem gambiarrísticas ) . Tentei quase todas, mas o erro persiste.

Para economizar tempo, coloco logo o meu código.

web.xml:

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

<display-name>Hello World com login - em Struts</display-name>

<servlet>
	<servlet-name>actionservlet</servlet-name>
	<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
	<init-param>
		<param-name>configurationes</param-name>
		<param-value>/WEB-INF/struts-config.xml</param-value>
	</init-param>
	<load-on-startup>1</load-on-startup>
</servlet>

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

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

<!-- Taglibs do JSTL -->
<taglib>
	<taglib-uri>jstl-c</taglib-uri>
	<taglib-location>/WEB-INF/c.tld</taglib-location>
</taglib>
<taglib>
	<taglib-uri>jstl-fmt</taglib-uri>
	<taglib-location>/WEB-INF/fmt.tld</taglib-location>
</taglib>
<!-- Taglibs do Struts -->
<taglib>
	<taglib-uri>struts-bean-el</taglib-uri>
	<taglib-location>/WEB-INF/struts-bean-el.tld</taglib-location>
</taglib>
<taglib>
	<taglib-uri>struts-html-el</taglib-uri>
	<taglib-location>/WEB-INF/struts-html-el.tld</taglib-location>
</taglib>
<taglib>
	<taglib-uri>struts-logic-el</taglib-uri>
	<taglib-location>/WEB-INF/struts-logic-el.tld</taglib-location>
</taglib>

[/code]

struts-config.xml:

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

<form-beans>
	<form-bean name="formLogin" type="com.gmail.homemletra.LoginFormBean"/>
</form-beans>

<action-mappings>
	<action path="/login"
			type="com.gmail.homemletra.LoginAction"
			name="formLogin"
			scope="request"
			validate="true"
			input="/index.jsp">
			<forward name="sucesso" path="/sucesso.jsp"/>
			<forward name="falha" path="/index.jsp"/>
	</action>
</action-mappings>

    <!--Copiado de codigo alheio (dos outros)-->
<controller processorClass="org.apache.struts.action.RequestProcessor" />

<message-resources null="false" parameter="com.gmail.homemletra.Recursos"/>

[/code]

index.jsp:

[code]<%@ page language=“java” contentType="text/html; charset=ISO-8859-1"
pageEncoding=“ISO-8859-1”%>

<%@taglib prefix=“fmt” uri=“jstl-fmt”%>
<%@taglib prefix=“html” uri=“struts-html-el”%>



<%-- campo do nome de usuário --%>
<%-- campo da senha --%>
[/code]

logado.jsp:

[code]<%@ page language=“java” contentType="text/html; charset=ISO-8859-1"
pageEncoding=“ISO-8859-1”%>

<%@taglib prefix=“fmt” uri=“jstl-fmt”%>
<%@taglib prefix=“html” uri=“struts-html-el”%>

	<hr><br>
	
	<center>
	<H3><fmt:message key="sucesso.comemoracao"/></H3>
	</center>
</body>
[/code]

E, pra garantir, tá aqui, logo, a árvore de diretórios:

domistruts
       |
       |---META-INF
       |
       |---WEB-INF
       |         |
       |         |--classes / com.gmail.homemletra / { LoginAction; LoginFormBean; LoginBean; Recursos }
       |         |
       |         |--lib / um monte de arquivos .jar
       |         |
       |         |-- arquivos .tld
       |         |
       |         |--web.xml
       |         |
       |         |--struts-config.xml
       |         

Já verifiquei várias vezes meu web.xml e o struts-config, e tambám já incluí todos os arquivos .jar do tipo commons que eu conheço à pasta lib, além de outras que outras pessoas recomendaram por aí.

Se estou postando esta mensagem é porque já não sei mais o que fazer (além de continuar vasculhando a web atrás de mais possíveis razões e soluções para essa exception).

Agradeço qualquer luz.
{}'s

Foi mal, mas não funcionou. Nem com as alterações feitas.
Suspeito que tenha algo a ver com incompatibilidade da versão - mas no ponto em que chegei já tô atirando pra tudo quanto é lado.

Ainda preciso de ajuda.

Eu já tinha olhado essa página. Também não foi de ajuda.

Pessoal… consegui.

Tudo o que eu fiz pra fazer rodar foi deixar o eclipse de lado e recomeçar “do zero e meio” usando o projeto pré-fabricado “struts-blank”. Que solução besta… 8)

Então, pra ajudar quem quer que venha parar nesta página em busca da solução, deixo aqui minha ajuda: a lista de possíveis causas e soluções que coletei na minha peregrinação pela web.

1- Causa mais provável: ou o seu web.xml ou struts-config.xml deve estar incompleto (ou os dois). Não esqueça de mapear corretamente suas ações. Exemplo:
web.xml

(...)
<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>1</load-on-startup>
  </servlet>

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

Nunca esqueça da tag . Embrora alguns possam dizer que ela é opcional, outras fontes dizem ter resolvido o problema quando colocaram essa tag.

Também não esqueça de colocar uma barra / no começo de cada “caminho”. Vi muita gente por aí esquecendo isso na tag que indica o caminho do struts-config, no parâmetro path de (veja código abaixo) e na definição do form, na página jsp.

struts-config

code






(…)




</action-mappings>

(…)
[/code]

página jsp

<html:form action="/login" method="post">
<p align="right">
<table>
	<tr>
		<td><bean:message key="form.login.nome"/>:</td>
		<td><html:text property="nomeUsuario" size="12"/></td>
	</tr>
	<tr>
		<td><bean:message key="form.login.senha"/>:</td>
		<td><html:password property="senhaUsuario" size="12"/></td>
	</tr>
	<tr>
		<td></td>
		<td><html:submit><bean:message key="form.login.submit"/></html:submit></td>
	</tr>
</table>
</p>
</html:form>

Note que em <html:form action="/login" method=“post”>, o caminho de action não termina com .do. Algumas pessoas colocavam o .do (ex: action="/login.do") e o programa não rodava.

Note também que o caminho de action deve ser igual ao colocado em path, atributo da tag , dentro de de , no struts-config.

Exemplo:
struts-config.xml

code

<action

        path="/login"

        name="logonForm"
        forward="/pages/logado.jsp"/>
</action-mappings>

(…)[/code]

pagina.jsp

code
<html:form action="/login" method=“post”>
(…)[/code]

2- Algumas pessoas descobriram que se alguns arquivos .jar não estiverem na pasta lib do seu projeto, o mesmo erro acontecerá. São eles:
[list] antlr.jar[/list]
[list] commons-collections.jar,[/list]
[list] commons-dbcp.jar,[/list]
[list] commons-lang.jar,[/list]
[list] commons-pool.jar,[/list]
[list] commons-resources.jar,[/list]
[list] commons-beanutils.jar[/list]
[list] commons-digester.jar[/list]
[list] commons-fileupload.jar[/list]
[list] commons-logging.jar[/list]
[list] commons-validator.jar[/list]
[list] jarkarta-oro.jar[/list]
[list] struts.jar[/list]

Se eu estiver errado com essa lista, cobrem desses caras:
http://forum.java.sun.com/thread.jspa?threadID=387141&messageID=2684678
http://blogs.developerfusion.co.uk/blogs/thushan/archive/2005/12/09/974.aspx

Por fim, se nada disso adiantar, faça o que todo livro recomenda que você faça primeiro: reaproveite o projeto “struts-blank” (você pode baixar por aí), que já vem semi-pronto e funcionando, e adicione/modifique o que você quiser. Foi só assim que eu consegui ver as coisas funcionarem aqui no meu quintal.

Espero ter sido de ajuda.

Valeu.