Java.lang.IllegalArgumentException: No bean specified

2 respostas
johmjohm

Ola galera, 8)
estou com um probleminha!
Estou fazendo uma pequena alteração nos dados de um contato em meu banco mysql, usando hibernate, mas na hora de alterar e clicar em salvar alteraçõs dá esse problema!

exception

javax.servlet.ServletException: javax.servlet.ServletException: BeanUtils.populate
	org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:286)
	org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
	org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:462)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)

root cause

javax.servlet.ServletException: BeanUtils.populate
	org.apache.struts.util.RequestUtils.populate(RequestUtils.java:469)
	org.apache.struts.chain.commands.servlet.PopulateActionForm.populate(PopulateActionForm.java:50)
	org.apache.struts.chain.commands.AbstractPopulateActionForm.execute(AbstractPopulateActionForm.java:60)
	org.apache.struts.chain.commands.ActionCommandBase.execute(ActionCommandBase.java:51)
	org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190)
	org.apache.commons.chain.generic.LookupCommand.execute(LookupCommand.java:304)
	org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190)
	org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:283)
	org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
	org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:462)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)

root cause

java.lang.IllegalArgumentException: No bean specified
	org.apache.commons.beanutils.PropertyUtilsBean.getPropertyDescriptor(PropertyUtilsBean.java:751)
	org.apache.commons.beanutils.BeanUtilsBean.setProperty(BeanUtilsBean.java:937)
	org.apache.commons.beanutils.BeanUtilsBean.populate(BeanUtilsBean.java:811)
	org.apache.commons.beanutils.BeanUtils.populate(BeanUtils.java:298)
	org.apache.struts.util.RequestUtils.populate(RequestUtils.java:467)
	org.apache.struts.chain.commands.servlet.PopulateActionForm.populate(PopulateActionForm.java:50)
	org.apache.struts.chain.commands.AbstractPopulateActionForm.execute(AbstractPopulateActionForm.java:60)
	org.apache.struts.chain.commands.ActionCommandBase.execute(ActionCommandBase.java:51)
	org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190)
	org.apache.commons.chain.generic.LookupCommand.execute(LookupCommand.java:304)
	org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190)
	org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:283)
	org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
	org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:462)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)

Estou usando o Struts 1.3.8 ! Alguem poderia me dar uma solucao!
Vlws :thumbup:

2 Respostas

otaviojava

Você provavelmente não especificou o bean no xml ou então não colocou as anotações.
verifica isso.

johmjohm

otaviojava:
Você provavelmente não especificou o bean no xml ou então não colocou as anotações.
verifica isso.

já deu uma olhada mas naum achei nd errado!

Meu xml:

<action
      input="/alteraContato.jsp"
      name="AlteraForm"
      path="/altera"
      scope="request"
      type="br.com.vetta.action.AlteraAction">
      <forward name="success" path="/listaContato.do" />
    </action>

Meu Action:

public class AlteraAction extends Action {
		
	@Override
	public ActionForward execute(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response)
			throws Exception {
		// TODO Auto-generated method stub
		Session session = HibernateUtil.getSession();
		AlteraForm formulario = (AlteraForm) form;
		Pessoa pessoa = formulario.getPessoa();
		PessoaDAO dao = new PessoaDAO(session);
		dao.atualiza(pessoa);
		
		return mapping.findForward("success");
	}

}

Meu form:

public class AlteraForm extends ActionForm {
	
	private Pessoa pessoa;

	public Pessoa getPessoa() {
		return pessoa;
	}
	
	@Override
	public ActionErrors validate(ActionMapping mapping,
			HttpServletRequest request) {
		ActionErrors erros = new ActionErrors();
		 
		
		 if(pessoa.getNome() == null || pessoa.getNome().equals("")){
			 erros.add("nome", new ActionMessage("erro.campoNome"));
		 }
		
		 if(pessoa.getCpf() == null || pessoa.getCpf().equals("")){
			 erros.add("cpf", new ActionMessage("erro.campoCpf"));
		 }
		
		 if(pessoa.getEndereco() == null || pessoa.getEndereco().equals("")){
			 erros.add("endereco", new ActionMessage("erro.campoEndereco"));
		 }
		 if(pessoa.getIdade() == null || pessoa.getIdade().equals("")){
			 erros.add("idade", new ActionMessage("erro.campoIdade"));
			 
		 }
		 if(pessoa.getTelefone() == null || pessoa.getTelefone().equals("")){
			 erros.add("telefone", new ActionMessage("erro.campoTelefone"));
		 }
		return erros;
	}

}

De uma olhada ai por favor! E ve se ha algo de errado!

Criado 9 de fevereiro de 2011
Ultima resposta 9 de fev. de 2011
Respostas 2
Participantes 2