STRUTS - (Exception creating bean)

Olá pessoal.
Estou iniciando com o aprendizado em STRUTS, e estou tomando um verdadeiro "baile".
Mas, com auxilio de um amigo que já usa STRUTS a alguma tempo, tentei fazer o meu primeiro cadastro.
Só que não estou conseguindo(nem ele) identificar onde está ocasionando tal erro.
Sabemos que esse erro normalmente é por causa de mapeamento errado no struts-config, entretanto não estamos vendo nada que esteja errado.
Gostaria que vocês dessem uma olhada e se possivel informar o que estou fazendo de errado.

ERRO:

HTTP Status 500 - 

--------------------------------------------------------------------------------

type Exception report

message 

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

exception 

javax.servlet.ServletException: Exception creating bean of class br.unicamp.eco.agendamento.struts.form.EquipamentosForm: {1}
	org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:825)
	org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:758)
	org.apache.jsp.pages.equipamento_005fcadastro_jsp._jspService(equipamento_005fcadastro_jsp.java:119)
	org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:298)
	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:810)


root cause 

javax.servlet.jsp.JspException: Exception creating bean of class br.unicamp.eco.agendamento.struts.form.EquipamentosForm: {1}
	org.apache.struts.taglib.html.FormTag.initFormBean(FormTag.java:482)
	org.apache.struts.taglib.html.FormTag.doStartTag(FormTag.java:452)
	org.apache.jsp.pages.equipamento_005fcadastro_jsp._jspx_meth_html_form_0(equipamento_005fcadastro_jsp.java:167)
	org.apache.jsp.pages.equipamento_005fcadastro_jsp._jspService(equipamento_005fcadastro_jsp.java:108)
	org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:298)
	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:810)


note The full stack trace of the root cause is available in the Apache Tomcat/5.0.25 logs.

struts-config.xml

[code]<?xml version=“1.0” encoding=“UTF-8”?>
<!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>

&lt;!-- ========== Data Source Configuration =============================== --&gt;
&lt;data-sources /&gt;

&lt;!-- ========== Form Bean Definitions ================================== --&gt;
&lt;form-beans&gt; 
    &lt;form-bean name="equipForm" type="br.unicamp.eco.agendamento.struts.form.EquipamentosForm" /&gt;        
&lt;/form-beans&gt;

&lt;!-- ========== Global Exception Definitions ============================== --&gt;
&lt;global-exceptions /&gt;

&lt;!-- ========== Global Forward Definitions =============================== --&gt;
&lt;global-forwards&gt;
    &lt;forward name="equipamento_cadastro" path="/pages/equipamento_cadastro.jsp" /&gt;        
&lt;/global-forwards&gt;

&lt;!-- ========== Action Mapping Definitions =============================== --&gt;
&lt;action-mappings&gt;
    
    &lt;action
        attribute="EquipamentosForm"
        input="/pages/equipamento_cadastro.jsp"
        name="equipForm"
        parameter="reqCode"
        path="/cad"
        scope="session"
        type="br.unicamp.eco.agendamento.struts.action.EquipamentoAction"
        validate="true" /&gt;        
&lt;/action-mappings&gt;

&lt;!-- ========== Controller Configuration ================================ --&gt;
&lt;controller /&gt;

&lt;!-- ========== Message Resources Definitions ============================ --&gt;

&lt;!-- ========== Plug Ins Configuration ================================= --&gt;
&lt;message-resources parameter="br.unicamp.eco.agendamento.struts.MessageResources" /&gt;
&lt;plug-in className="org.apache.struts.validator.ValidatorPlugIn"&gt;
    &lt;set-property property="pathnames" value="/WEB-INF/validator-rules.xml,/WEB-INF/validation.xml" /&gt;
    &lt;set-property property="stopOnFirstError" value="false" /&gt;
&lt;/plug-in&gt;

</struts-config>
[/code]

EquipamentoAction

package br.unicamp.eco.agendamento.struts.action;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.actions.DispatchAction;

import br.unicamp.eco.agendamento.entidades.Equipamentos;
import br.unicamp.eco.agendamento.entidades.controle.ControleFactory;
import br.unicamp.eco.agendamento.struts.form.EquipamentosForm;

public class EquipamentoAction extends DispatchAction  {
	
	public ActionForward confirmar(ActionMapping map, ActionForm form, HttpServletRequest
			request, HttpServletResponse response) {
			
		EquipamentosForm equipForm = (EquipamentosForm) form;
		Equipamentos equip = new Equipamentos();
		
		//HttpSession sessao = request.getSession();
		
		equip.setCodequipamento(Integer.parseInt(equipForm.getTxtcodequipamento()));
		equip.setDescricao(equipForm.getTxtdescricao());		
		ControleFactory.getInstance().getEquipamentoControle().novoEquipamento(equip);

		return null;
	}
}

EquipamentosForm

[code]package br.unicamp.eco.agendamento.struts.form;

/**

  • Formulário de Cadastro da tabela Equipamentos
  • @author Anderson Carlos Barbosa (anderson@eco.unicamp.br)
    */

import org.apache.struts.action.ActionForm;

public class EquipamentosForm extends ActionForm {

private String txtcodequipamento;
private String txtdescricao;

/*public final void limpar(ActionMapping mapping, HttpServletRequest request) {

	txtcodequipamento = "";
	txtdescricao = "";

}*/	

/*public final ActionErrors validate(ActionMapping mapping, HttpServletRequest request) {

    HttpSession sessao = request.getSession();
    ActionErrors listaErros = new ActionErrors();
    return listaErros;
}*/


public String getTxtcodequipamento() {
	return txtcodequipamento;
}

public void setTxtcodequipamento(String txtcodequipamento) {
	this.txtcodequipamento = txtcodequipamento;
}

public String getTxtdescricao() {
	return txtdescricao;
}

public void setTxtdescricao(String txtdescricao) {
	this.txtdescricao = txtdescricao;
}

}

[/code]

Se precisarem de mais algum arquivo, é só falar.

Agradeço pela atenção!

Ninguém tem uma luz sobre isso ?

Saudações powerguido

Seu problema parece ser no jsp.
Você deve ter utilizado o atributo “class” em alguma tag que não aceita desta forma. As tags do Struts normalmente utilizam “styleClass” em vez de “class”.

por exemplo:

<html:button property="Filtrar" value="OK" styleClass="botaoativo" onclick="sendValue();" />

Dê uma verificada e avisa ai.

[quote=VinicerasMG]Saudações powerguido

Seu problema parece ser no jsp.
Você deve ter utilizado o atributo “class” em alguma tag que não aceita desta forma. As tags do Struts normalmente utilizam “styleClass” em vez de “class”.

por exemplo:

<html:button property="Filtrar" value="OK" styleClass="botaoativo" onclick="sendValue();" />

Dê uma verificada e avisa ai.[/quote]

Então, tinha um monte de atributo “class”. Alterei, mas continua o mesmo erro.

Segue então o meu equipamento_cadastro.jsp

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

<html> 
	<head>

        <meta HTTP-EQUIV="Pragma" CONTENT="no-cache" />  
        <meta HTTP-EQUIV="Cache-control" CONTENT="no-cache" />  
        <meta HTTP-EQUIV="Expires" CONTENT="0" /> 	

		
		<title>Cadastro</title>

		<html:base/> 
		<link href="<html:rewrite page="/pages/img/Estilos.css" />" rel="stylesheet" type="text/css"> 
		<title>Autorizações</title>
 
		<script>var imgsrc="img/"; var scriptsrc="config/"; var langue="pt";</script> 
	    <meta http-equiv = "Content-Language" content = "fr">
	    <meta name = "GENERATOR" content = ".PPR">
	    <meta name = "Keywords" content = "application, servers, application-servers, improve, websphere, webobjects, weblogic, uml, xml, J2EE, soap, uddi, wsdl, appserversrobots">
	    <meta name = "description" content = "Forum de news sur les technologies Internet de pointe">

	    <script language="JavaScript" src="config/javascript.js"></script>
	    <script language="JavaScript" src="config/swap.js"></script>	    
	</head>
	<body>			
	
 		<p align="CENTER" >
		
		<html:form action="/cad" method="confirmar"> 
		<input type="hidden" name="reqCode" value="confirmar">
 
				<table cellspacing="1" align="center" cellpadding="1" border="1" width="60%" >
				<tr>
					<td >
						<br>				  	
						<tr>
					  		<td styleClass="tableLabel2">
					  			Campo1:
					  		</td> 
					  		<td valign="top" styleClass="" style="">
					  			<html:text property="txtcodequipamento" styleClass="textInput" />		 								 								 						
					  		</td>			  		
						</tr> 
						
					  	<tr>
					  		<td styleClass="tableLabel2">
					  			Campo2:
					  		</td>
					  		<td valign="top" styleClass="" style="">
					  			<html:text property="txtdescricao" styleClass="textInput"/>		 								 								 								 						
					  		</td>					  					  		
					  	</tr>
						<tr>
							<td>&nbsp;</td>
						   	<td align="left" styleClass="tableLabel2" >
						   		<input type="button" name="botLimpar" styleClass="ButtonDefault" value=" Limpar " onclick="this.form.elements['reqCode'].value='limpar'; document.forms[0].submit();"/>						   										
							   		<input type="submit" styleClass="ButtonDefault" value="Confirmar" onclick="this.form.elements['reqCode'].value='confirmar';"/>														   	</td>
						</tr>						
						<br>		
						<br>		
					</td>
				</tr>
				</table>
		</html:form>
		</p>		
	</body>
</html>

Me veio na cabeça uma coisa: É preciso criar sessão para funcionar o STRUTS ?

Como eu disse, as tags do struts utilizam “styleClass” em vez de class. A tag

é do html, então ela utiliza o atributo “class” mesmo…

Mas aí eu não tenho certeza se esse é o problema, porque eu fiz um teste simples aqui na tag TD num jsp meu e substituí “class” por “styleClass”. A página carregou, mas simplesmente ignorou o styleClass e a parte deste TD veio sem estilo.

Você já fez alguma outra página que funcionou? Estou um pouco sismado com a linha 17 do seu jsp… Talvez a folha de estilo não tenha sido carregada…

<link href="<html:rewrite page="/pages/img/Estilos.css" />" rel="stylesheet" type="text/css"> 

[quote=VinicerasMG]Como eu disse, as tags do struts utilizam “styleClass” em vez de class. A tag

é do html, então ela utiliza o atributo “class” mesmo…

Mas aí eu não tenho certeza se esse é o problema, porque eu fiz um teste simples aqui na tag TD num jsp meu e substituí “class” por “styleClass”. A página carregou, mas simplesmente ignorou o styleClass e a parte deste TD veio sem estilo.

Você já fez alguma outra página que funcionou? Estou um pouco sismado com a linha 17 do seu jsp… Talvez a folha de estilo não tenha sido carregada…

[code]

" rel="stylesheet" type="text/css"> [/code][/quote]

Carregar ele carrega … Mas por teste, tirei o estilo e continua com o mesmo erro.
:frowning:
Bom, agradeço pela ajuda ai. Tô pensando até em refazer instalado do jdk.

Alguém conseguiu resolver este problema?