ERRO ao instanciar uma classe pelo Managed Bean
28/04/2011
0
?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:a4j="http://richfaces.org/a4j"
xmlns:rich="http://richfaces.org/rich">
<ui:composition template="template.xhtml">
<ui:define name="conteudo">
<h:form>
<link rel="stylesheet" type="text/css" href="CSS/dtUsuario.css" />
<a4j:keepAlive beanName="qualificacaoForm"></a4j:keepAlive>
<a4j:keepAlive beanName="recebimentoForm"></a4j:keepAlive>
...
</h:form>
</ui:define>
</ui:composition>
</html>
Pois bem, ao chegar nessa parte: <a4j:keepAlive beanName="qualificacaoForm"></a4j:keepAlive>
o java me retorna o seguinte erro:
28/04/2011 10:28:48 com.sun.facelets.FaceletViewHandler handleRenderException
SEVERE: Error Rendering View[/cd_qualificacao.xhtml]
com.sun.faces.mgbean.ManagedBeanCreationException: Cant instantiate class: br.org.isgh.compras.forms.QualificacaoForm.
at com.sun.faces.mgbean.BeanBuilder.newBeanInstance(BeanBuilder.java:191)
at com.sun.faces.mgbean.BeanBuilder.build(BeanBuilder.java:106)
at com.sun.faces.mgbean.BeanManager.createAndPush(BeanManager.java:368)
at com.sun.faces.mgbean.BeanManager.create(BeanManager.java:230)
at com.sun.faces.el.ManagedBeanELResolver.getValue(ManagedBeanELResolver.java:86)
at javax.el.CompositeELResolver.getValue(CompositeELResolver.java:54)
at com.sun.faces.el.FacesCompositeELResolver.getValue(FacesCompositeELResolver.java:72)
at org.apache.el.parser.AstIdentifier.getValue(AstIdentifier.java:69)
at org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:186)
at com.sun.faces.application.ValueBindingValueExpressionAdapter.getValue(ValueBindingValueExpressionAdapter.java:113)
at org.ajax4jsf.taglib.html.facelets.KeepAliveHandler.apply(KeepAliveHandler.java:76)
at com.sun.facelets.tag.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:47)
at com.sun.facelets.tag.jsf.ComponentHandler.applyNextHandler(ComponentHandler.java:360)
at com.sun.facelets.tag.jsf.ComponentHandler.apply(ComponentHandler.java:190)
at com.sun.facelets.tag.ui.DefineHandler.applyDefinition(DefineHandler.java:64)
at com.sun.facelets.tag.ui.CompositionHandler.apply(CompositionHandler.java:136)
at com.sun.facelets.impl.DefaultFaceletContext$TemplateManager.apply(DefaultFaceletContext.java:337)
at com.sun.facelets.impl.DefaultFaceletContext.includeDefinition(DefaultFaceletContext.java:307)
at com.sun.facelets.tag.ui.InsertHandler.apply(InsertHandler.java:68)
at com.sun.facelets.tag.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:47)
at com.sun.facelets.compiler.NamespaceHandler.apply(NamespaceHandler.java:49)
at com.sun.facelets.tag.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:47)
at com.sun.facelets.compiler.EncodingHandler.apply(EncodingHandler.java:39)
at com.sun.facelets.impl.DefaultFacelet.include(DefaultFacelet.java:248)
at com.sun.facelets.impl.DefaultFacelet.include(DefaultFacelet.java:294)
at com.sun.facelets.impl.DefaultFacelet.include(DefaultFacelet.java:273)
at com.sun.facelets.impl.DefaultFaceletContext.includeFacelet(DefaultFaceletContext.java:140)
at com.sun.facelets.tag.ui.CompositionHandler.apply(CompositionHandler.java:116)
at com.sun.facelets.compiler.NamespaceHandler.apply(NamespaceHandler.java:49)
at com.sun.facelets.compiler.EncodingHandler.apply(EncodingHandler.java:39)
at com.sun.facelets.impl.DefaultFacelet.apply(DefaultFacelet.java:95)
at com.sun.facelets.FaceletViewHandler.buildView(FaceletViewHandler.java:526)
at com.sun.facelets.FaceletViewHandler.renderView(FaceletViewHandler.java:569)
at org.ajax4jsf.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:100)
at org.ajax4jsf.application.AjaxViewHandler.renderView(AjaxViewHandler.java:176)
at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:110)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:100)
at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:266)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:178)
at org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:290)
at org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:388)
at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:515)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.IndexOutOfBoundsException: Index: 5, Size: 5
at java.util.ArrayList.RangeCheck(Unknown Source)
at java.util.ArrayList.get(Unknown Source)
at br.org.isgh.compras.forms.QualificacaoForm.<init>(QualificacaoForm.java:43)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at java.lang.Class.newInstance0(Unknown Source)
at java.lang.Class.newInstance(Unknown Source)
at com.sun.faces.mgbean.BeanBuilder.newBeanInstance(BeanBuilder.java:186)
... 56 more
Procurei no Google mas não encontrei a solução
OBS: a configuração dessa classe está aparentemente ok no faces-config.xml.
Barcelos.java
Posts
28/04/2011
Davi Costa
Posta essa classe para a gente dar uma olhada.
Nunca havia colocado dois:
<a4j:keepAlive beanName="qualificacaoForm"></a4j:keepAlive>
<a4j:keepAlive beanName="recebimentoForm"></a4j:keepAlive>
Mas testei aqui em uma app minha e funcionou sem problemas, realmente parece erro na sua própria classe.
Att Davi
28/04/2011
Barcelos.java
package br.org.isgh.compras.forms; import java.io.Serializable; import java.util.ArrayList; import java.util.List; import javax.faces.context.FacesContext; import br.org.isgh.compras.beans.Qualificacao; import br.org.isgh.compras.beans.QualificacaoQuestionario; import br.org.isgh.compras.beans.Questionario; import br.org.isgh.compras.beans.Recebimento; import br.org.isgh.compras.facade.AfFacade; import br.org.isgh.compras.facade.QualificacaoFacade; import br.org.isgh.compras.facade.QuestionarioFacade; import br.org.isgh.compras.facade.impl.AfFacadeImpl; import br.org.isgh.compras.facade.impl.QualificacaoFacadeImpl; import br.org.isgh.compras.facade.impl.QuestionarioFacadeImpl; import br.org.isgh.compras.util.MessagesUtil; public class QualificacaoForm implements Serializable { /** * */ private static final long serialVersionUID = 1L; //INSTANCIA 2 private Qualificacao qualificacao = new Qualificacao(); private QualificacaoFacade qualificacaoFacade = new QualificacaoFacadeImpl(); private Questionario questionario = new Questionario(); private QuestionarioFacade questionarioFacade = new QuestionarioFacadeImpl(); private List<Qualificacao> qualificacoes; private final int QTDE_PERGUNTAS = 6; Recebimento recebimento = new Recebimento(); public QualificacaoForm() { QuestionarioFacade qFacade = new QuestionarioFacadeImpl(); List<Questionario> quest = qFacade.listar(); List<QualificacaoQuestionario> qqs = new ArrayList<QualificacaoQuestionario>(QTDE_PERGUNTAS); for (int i = 0; i < QTDE_PERGUNTAS; i++) { QualificacaoQuestionario qq = new QualificacaoQuestionario(); qq.setQualificacao(qualificacao); qq.setQuestionario(quest.get(i)); qqs.add(qq); } qualificacao.setQualificacaoQuestionarios(qqs); } public String inserir() { try { List<QualificacaoQuestionario> qq = qualificacao.getQualificacaoQuestionarios(); for (QualificacaoQuestionario qualificacaoQuestionario : qq) { if (qualificacaoQuestionario.getFlgPontuacao().booleanValue() == true) { qualificacaoQuestionario.setVlrPontuacao( qualificacaoQuestionario.getQuestionario().getVlrPositivo()); } else { qualificacaoQuestionario.setVlrPontuacao( qualificacaoQuestionario.getQuestionario().getVlrNegativo()); if (qualificacaoQuestionario.getDscJustificativa() == null || qualificacaoQuestionario.getDscJustificativa().equals("")) { MessagesUtil.inserirMensagem("Justificativa da questão "+qualificacaoQuestionario.getQuestionario().getIsnQuestionario()+" não pode ser vazia"); } } } if (!FacesContext.getCurrentInstance().getMessages().hasNext()) { qualificacaoFacade.inserir(qualificacao,recebimento); finalizaNF(); MessagesUtil.inserirMensagem(" Processo qualificado e finalizado com sucesso!"); return "csRecebimento"; //MessagesUtil.inserirMensagem("Cadastro realizado com sucesso."); } } catch (RuntimeException e) { MessagesUtil.inserirMensagem("Erro ao inserir Qualificação."); e.printStackTrace(); } return null; } public String finalizaNF(){ try{ AfFacade afFacade = new AfFacadeImpl(); afFacade.finalizaNF(recebimento); } catch (RuntimeException e){ e.printStackTrace(); throw e; } return null; } public Qualificacao getQualificacao() { return qualificacao; } public void setQualificacao(Qualificacao qualificacao) { this.qualificacao = qualificacao; } public QualificacaoFacade getQualificacaoFacade() { return qualificacaoFacade; } public void setQualificacaoFacade(QualificacaoFacade qualificacaoFacade) { this.qualificacaoFacade = qualificacaoFacade; } public Questionario getQuestionario() { return questionario; } public void setQuestionario(Questionario questionario) { this.questionario = questionario; } public QuestionarioFacade getQuestionarioFacade() { return questionarioFacade; } public void setQuestionarioFacade(QuestionarioFacade questionarioFacade) { this.questionarioFacade = questionarioFacade; } public List<Qualificacao> getQualificacoes() { return qualificacoes; } public void setQualificacoes(List<Qualificacao> qualificacoes) { this.qualificacoes = qualificacoes; } public Recebimento getRecebimento() { return recebimento; } public void setRecebimento(Recebimento recebimento) { this.recebimento = recebimento; } public static long getSerialversionuid() { return serialVersionUID; } public int getQTDE_PERGUNTAS() { return QTDE_PERGUNTAS; } public QualificacaoForm(Qualificacao qualificacao, QualificacaoFacade qualificacaoFacade, Questionario questionario, QuestionarioFacade questionarioFacade, List<Qualificacao> qualificacoes, Recebimento recebimento) { super(); this.qualificacao = qualificacao; this.qualificacaoFacade = qualificacaoFacade; this.questionario = questionario; this.questionarioFacade = questionarioFacade; this.qualificacoes = qualificacoes; this.recebimento = recebimento; } }
28/04/2011
Davi Costa
public QualificacaoForm() {
QuestionarioFacade qFacade = new QuestionarioFacadeImpl();
List<Questionario> quest = qFacade.listar();
List<QualificacaoQuestionario> qqs = new ArrayList<QualificacaoQuestionario>(QTDE_PERGUNTAS);
for (int i = 0; i < QTDE_PERGUNTAS; i++) {
QualificacaoQuestionario qq = new QualificacaoQuestionario();
qq.setQualificacao(qualificacao);
qq.setQuestionario(quest.get(i));
qqs.add(qq);
}
qualificacao.setQualificacaoQuestionarios(qqs);
}
Att Davi
28/04/2011
Barcelos.java
SEVERE: JSF will be unable to create managed bean qualificacaoForm when it is requested. The following problems where found: - Managed bean class br.org.isgh.compras.forms.QualificacaoForm for managed bean qualificacaoForm doesnt declare a public no-argument constructor. 28/04/2011 14:38:14 com.sun.facelets.FaceletViewHandler handleRenderException SEVERE: Error Rendering View[/cd_qualificacao.xhtml] com.sun.faces.mgbean.ManagedBeanCreationException: Unable to create managed bean qualificacaoForm. The following problems were found: - Managed bean class br.org.isgh.compras.forms.QualificacaoForm for managed bean qualificacaoForm doesnt declare a public no-argument constructor. at com.sun.faces.mgbean.BeanManager.create(BeanManager.java:204) at com.sun.faces.el.ManagedBeanELResolver.getValue(ManagedBeanELResolver.java:86) at javax.el.CompositeELResolver.getValue(CompositeELResolver.java:54) at com.sun.faces.el.FacesCompositeELResolver.getValue(FacesCompositeELResolver.java:72) at org.apache.el.parser.AstIdentifier.getValue(AstIdentifier.java:69) at org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:186) at com.sun.faces.application.ValueBindingValueExpressionAdapter.getValue(ValueBindingValueExpressionAdapter.java:113) at org.ajax4jsf.taglib.html.facelets.KeepAliveHandler.apply(KeepAliveHandler.java:76) ... 28/04/2011 14:38:14 com.sun.faces.lifecycle.Phase doPhase SEVERE: JSF1054: (Phase ID: RENDER_RESPONSE 6, View ID: /cd_qualificacao.xhtml) Exception thrown during phase execution: javax.faces.event.PhaseEvent[source=com.sun.faces.lifecycle.LifecycleImpl@d7cf62] 28/04/2011 14:38:14 org.ajax4jsf.webapp.BaseXMLFilter doXmlFilter SEVERE: Exception in the filter chain javax.servlet.ServletException: Unable to create managed bean qualificacaoForm. The following problems were found: - Managed bean class br.org.isgh.compras.forms.QualificacaoForm for managed bean qualificacaoForm doesnt declare a public no-argument constructor. at javax.faces.webapp.FacesServlet.service(FacesServlet.java:270) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:178) at org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:290) at org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:388) at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:515) ... Caused by: com.sun.faces.mgbean.ManagedBeanCreationException: Unable to create managed bean qualificacaoForm. The following problems were found: - Managed bean class br.org.isgh.compras.forms.QualificacaoForm for managed bean qualificacaoForm doesnt declare a public no-argument constructor. at com.sun.faces.mgbean.BeanManager.create(BeanManager.java:204) at com.sun.faces.el.ManagedBeanELResolver.getValue(ManagedBeanELResolver.java:86) at javax.el.CompositeELResolver.getValue(CompositeELResolver.java:54) at com.sun.faces.el.FacesCompositeELResolver.getValue(FacesCompositeELResolver.java:72) at org.apache.el.parser.AstIdentifier.getValue(AstIdentifier.java:69) at org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:186) at com.sun.faces.application.ValueBindingValueExpressionAdapter.getValue(ValueBindingValueExpressionAdapter.java:113) at org.ajax4jsf.taglib.html.facelets.KeepAliveHandler.apply(KeepAliveHandler.java:76) at com.sun.facelets.tag.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:47) at com.sun.facelets.tag.jsf.ComponentHandler.applyNextHandler(ComponentHandler.java:360)
28/04/2011
Davi Costa
Como vc tem um construtor com parâmetros, a JVM não criou para vc um construtor padrão sem parâmetros. no lugar de comentar o construtor inteiro, comente só o que tem dentro dele....
mas daí vc pode ter algum nullpointer na hr de tentar abrir sua página..
o ideal é vc debugar e ver qual linha kebra sem comentar nada de código... para vc entender o q está realmente acontecendo.. debug debug
Att Davi
28/04/2011
Barcelos.java
public QualificacaoForm() {
super();
}
então o detalhe é tinha algo de errado naquele código, vou criar outra solução.
Obrigado pela atenção.
Espero poder ajudar aqui no forum tb.
Clique aqui para fazer login e interagir na Comunidade :)