Erro: Cannot retrieve definition for form bean [resolvido]

4 respostas
M

Olá pessoal,

Sou iniciante em struts. Já instalei e constatei que está funcionando, e agora estou fazendo o exemplo da Lesson 1 do documento Struttin’ with Struts. No entanto, não estou fazendo igualzinho, e sim tentando adaptar a uma tabela que tenho. Porem, qdo o programa vai acessar o .jsp que faria o cadastro, tenho o seguinte erro:

message

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

exception

javax.servlet.ServletException: Cannot retrieve definition for form bean materiaPrimaForm on action insertMateriaPrima
org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:846)
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:779)
org.apache.jsp.materiaPrimaForm_jsp._jspService(materiaPrimaForm_jsp.java:98)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:99)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:325)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:295)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:245)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:362)

root cause

javax.servlet.jsp.JspException: Cannot retrieve definition for form bean materiaPrimaForm on action insertMateriaPrima
org.apache.struts.taglib.html.FormTag.lookup(FormTag.java:761)
org.apache.struts.taglib.html.FormTag.doStartTag(FormTag.java:443)
org.apache.strutsel.taglib.html.ELFormTag.doStartTag(ELFormTag.java:297)
org.apache.jsp.materiaPrimaForm_jsp._jspx_meth_html_form_0(materiaPrimaForm_jsp.java:163)
org.apache.jsp.materiaPrimaForm_jsp._jspService(materiaPrimaForm_jsp.java:88)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:99)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:325)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:295)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:245)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:362)

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>Cadastro de Materia Prima</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>

struts-config.xml:

<!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>
    <!-- Form Bean Definitions -->
    <form-beans>
       <form-bean name="MateriaPrimaForm" type="net.app.MateriaPrimaForm"/> 
    </form-beans>
    <!--  Action Mapping Definitions  -->
    <action-mappings>
        <action path="/setupMateriaPrimaForm" forward="/materiaPrimaForm.jsp"/>

        <action path="/insertMateriaPrima"
            type="net.app.InsertMateriaPrimaAction"
            name="materiaPrimaForm"
            scope="request"
            validate="false"
            >
            <forward
                    name="success"
                    path="/confirmacao.jsp"/>
        </action>
    </action-mappings>
    <!-- message resources -->
    <message-resources
        parameter="MessageResources"
        null="false" />
</struts-config>

Aguardo algum feedback. Se alguem quiser também me indicar outro documento que eu deva ler, ou pelo qual deva tentar fazer um exemplo, agradeço imensamente.

4 Respostas

M

Você declarou o form bean como"MateriaPrimaForm" e chamou ele lá no mapeamento do action, no atributo nome, como “materiaPrimaForm”, com o “M” minúsculo.

Os nomes devem ser iguais.

M

Mauricio, agradeço, resolveu o problema.

No entanto, achei os exemplos do struttin with struts um pouco falhos por nao terem sido feitos com bancos de dados. Alguem poderia me indicar um que usasse esse recurso?

Agradeço

M

Mas qual a dificuldade de se usar bancos de dados? É só um jeito diferente de trabalhar com as informações, não chega a ter muito haver com o Struts não.

Se você puder, compra o livro “Struts em ação” senão, tem um tutorial do Struts lá no Portal Java:

http://www.portaljava.com.br/home/modules.php?name=Content&pa=showpage&pid=63

O GUJ bem que tá precisando de um também né :roll:

M

Mauricio,

Obrigado, estava também com o mesmo problema.

Abraços!

Criado 13 de junho de 2005
Ultima resposta 12 de out. de 2009
Respostas 4
Participantes 3