(Iniciante) Erro no JSF = Cant instantiate class:

5 respostas
A

Olá, sou novo tanto no fórum como em JSF e estou tendo um problema ao executar uma página (corpo.jsf)
Bem tenho um exemplo que está funcionando certinho, tendo ele como base criei um outro projeto que é o que está dando erro ao executar o código “<rich:dataTable value=”#{notafiscalDAO.notasfiscais}" var=“notafiscal” rendered="#{not empty notafiscalDAO.notasfiscais}" rows=“3”>"

o faces-config.xml que está em WEB-INF contem a declaração:

notafiscalDAO
dao.NotaFiscalDAO
session

a classe que está em src/dao

package dao;

import java.util.ArrayList;

import java.util.List;

import org.hibernate.Criteria;

import org.hibernate.Session;

import control.NotaFiscal;

public class NotaFiscalDAO {

private Session session;

public NotaFiscalDAO(Session session) {
	this.session = session;
}

public NotaFiscal buscar(Integer id) {
	return (NotaFiscal) this.session.load(NotaFiscal.class, id);
}

private List<NotaFiscal> notasfiscais = new ArrayList<NotaFiscal>();
public List<NotaFiscal> getNotasfiscais() {
	return notasfiscais;
}

// Listar todas notas usando criteria
public List<NotaFiscal> listar() {
	Criteria criteria = session.createCriteria(NotaFiscal.class);
	return criteria.list();
}

}

Obrigado

5 Respostas

G

Tem como vc passar o stacktrace do erro ?

A

Desculpe a ingnorancia (hehe) mas acho que é isso que você quer, certo?
Obrigado.

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: javax.faces.FacesException: javax.faces.FacesException: Cant instantiate class: dao.NotaFiscalDAO… dao.NotaFiscalDAO

javax.faces.webapp.FacesServlet.service(FacesServlet.java:256)

org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:141)

org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:281)

root cause

javax.el.ELException: javax.faces.FacesException: javax.faces.FacesException: Cant instantiate class: dao.NotaFiscalDAO… dao.NotaFiscalDAO

javax.faces.component.ValueExpressionValueBindingAdapter.getValue(ValueExpressionValueBindingAdapter.java:76)

javax.faces.component.UIComponentBase.isRendered(UIComponentBase.java:370)

javax.faces.component.UIComponent.encodeAll(UIComponent.java:880)

javax.faces.render.Renderer.encodeChildren(Renderer.java:137)

javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:809)

org.ajax4jsf.renderkit.RendererBase.renderChild(RendererBase.java:282)

org.ajax4jsf.renderkit.RendererBase.renderChildren(RendererBase.java:262)

org.richfaces.renderkit.TabRendererBase.encodeChildren(TabRendererBase.java:113)

javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:809)

org.ajax4jsf.renderkit.RendererBase.renderChild(RendererBase.java:282)

org.ajax4jsf.renderkit.RendererBase.renderChildren(RendererBase.java:262)

org.richfaces.renderkit.html.TabPanelRenderer.doEncodeChildren(TabPanelRenderer.java:266)

org.richfaces.renderkit.html.TabPanelRenderer.doEncodeChildren(TabPanelRenderer.java:261)

org.ajax4jsf.renderkit.RendererBase.encodeChildren(RendererBase.java:121)

javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:809)

javax.faces.component.UIComponent.encodeAll(UIComponent.java:886)

javax.faces.component.UIComponent.encodeAll(UIComponent.java:892)

com.sun.faces.application.ViewHandlerImpl.doRenderView(ViewHandlerImpl.java:244)

com.sun.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:175)

org.ajax4jsf.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:108)

org.ajax4jsf.application.AjaxViewHandler.renderView(AjaxViewHandler.java:216)

com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:106)

com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:251)

com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:144)

javax.faces.webapp.FacesServlet.service(FacesServlet.java:245)

org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:141)

org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:281)

root cause

javax.faces.FacesException: javax.faces.FacesException: Cant instantiate class: dao.NotaFiscalDAO… dao.NotaFiscalDAO

com.sun.faces.application.ApplicationAssociate.createAndMaybeStoreManagedBeans(ApplicationAssociate.java:541)

com.sun.faces.el.ManagedBeanELResolver.getValue(ManagedBeanELResolver.java:82)

javax.el.CompositeELResolver.getValue(CompositeELResolver.java:53)

com.sun.faces.el.FacesCompositeELResolver.getValue(FacesCompositeELResolver.java:64)

org.apache.el.parser.AstIdentifier.getValue(AstIdentifier.java:45)

org.apache.el.parser.AstValue.getValue(AstValue.java:86)

org.apache.el.parser.AstEmpty.getValue(AstEmpty.java:29)

org.apache.el.parser.AstNot.getValue(AstNot.java:26)

org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:186)

com.sun.faces.application.ValueBindingValueExpressionAdapter.getValue(ValueBindingValueExpressionAdapter.java:102)

javax.faces.component.ValueExpressionValueBindingAdapter.getValue(ValueExpressionValueBindingAdapter.java:73)

javax.faces.component.UIComponentBase.isRendered(UIComponentBase.java:370)

javax.faces.component.UIComponent.encodeAll(UIComponent.java:880)

javax.faces.render.Renderer.encodeChildren(Renderer.java:137)

javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:809)

org.ajax4jsf.renderkit.RendererBase.renderChild(RendererBase.java:282)

org.ajax4jsf.renderkit.RendererBase.renderChildren(RendererBase.java:262)

org.richfaces.renderkit.TabRendererBase.encodeChildren(TabRendererBase.java:113)

javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:809)

org.ajax4jsf.renderkit.RendererBase.renderChild(RendererBase.java:282)

org.ajax4jsf.renderkit.RendererBase.renderChildren(RendererBase.java:262)

org.richfaces.renderkit.html.TabPanelRenderer.doEncodeChildren(TabPanelRenderer.java:266)

org.richfaces.renderkit.html.TabPanelRenderer.doEncodeChildren(TabPanelRenderer.java:261)

org.ajax4jsf.renderkit.RendererBase.encodeChildren(RendererBase.java:121)

javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:809)

javax.faces.component.UIComponent.encodeAll(UIComponent.java:886)

javax.faces.component.UIComponent.encodeAll(UIComponent.java:892)

com.sun.faces.application.ViewHandlerImpl.doRenderView(ViewHandlerImpl.java:244)

com.sun.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:175)

org.ajax4jsf.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:108)

org.ajax4jsf.application.AjaxViewHandler.renderView(AjaxViewHandler.java:216)

com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:106)

com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:251)

com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:144)

javax.faces.webapp.FacesServlet.service(FacesServlet.java:245)

org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:141)

org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:281)

root cause

javax.faces.FacesException: Cant instantiate class: dao.NotaFiscalDAO… dao.NotaFiscalDAO

com.sun.faces.config.ManagedBeanFactoryImpl.newInstance(ManagedBeanFactoryImpl.java:282)

com.sun.faces.application.ApplicationAssociate.createAndMaybeStoreManagedBeans(ApplicationAssociate.java:531)

com.sun.faces.el.ManagedBeanELResolver.getValue(ManagedBeanELResolver.java:82)

javax.el.CompositeELResolver.getValue(CompositeELResolver.java:53)

com.sun.faces.el.FacesCompositeELResolver.getValue(FacesCompositeELResolver.java:64)

org.apache.el.parser.AstIdentifier.getValue(AstIdentifier.java:45)

org.apache.el.parser.AstValue.getValue(AstValue.java:86)

org.apache.el.parser.AstEmpty.getValue(AstEmpty.java:29)

org.apache.el.parser.AstNot.getValue(AstNot.java:26)

org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:186)

com.sun.faces.application.ValueBindingValueExpressionAdapter.getValue(ValueBindingValueExpressionAdapter.java:102)

javax.faces.component.ValueExpressionValueBindingAdapter.getValue(ValueExpressionValueBindingAdapter.java:73)

javax.faces.component.UIComponentBase.isRendered(UIComponentBase.java:370)

javax.faces.component.UIComponent.encodeAll(UIComponent.java:880)

javax.faces.render.Renderer.encodeChildren(Renderer.java:137)

javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:809)

org.ajax4jsf.renderkit.RendererBase.renderChild(RendererBase.java:282)

org.ajax4jsf.renderkit.RendererBase.renderChildren(RendererBase.java:262)

org.richfaces.renderkit.TabRendererBase.encodeChildren(TabRendererBase.java:113)

javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:809)

org.ajax4jsf.renderkit.RendererBase.renderChild(RendererBase.java:282)

org.ajax4jsf.renderkit.RendererBase.renderChildren(RendererBase.java:262)

org.richfaces.renderkit.html.TabPanelRenderer.doEncodeChildren(TabPanelRenderer.java:266)

org.richfaces.renderkit.html.TabPanelRenderer.doEncodeChildren(TabPanelRenderer.java:261)

org.ajax4jsf.renderkit.RendererBase.encodeChildren(RendererBase.java:121)

javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:809)

javax.faces.component.UIComponent.encodeAll(UIComponent.java:886)

javax.faces.component.UIComponent.encodeAll(UIComponent.java:892)

com.sun.faces.application.ViewHandlerImpl.doRenderView(ViewHandlerImpl.java:244)

com.sun.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:175)

org.ajax4jsf.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:108)

org.ajax4jsf.application.AjaxViewHandler.renderView(AjaxViewHandler.java:216)

com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:106)

com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:251)

com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:144)

javax.faces.webapp.FacesServlet.service(FacesServlet.java:245)

org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:141)

org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:281)

root cause

java.lang.InstantiationException: dao.NotaFiscalDAO

java.lang.Class.newInstance0(Unknown Source)

java.lang.Class.newInstance(Unknown Source)

com.sun.faces.config.ManagedBeanFactoryImpl.newInstance(ManagedBeanFactoryImpl.java:277)

com.sun.faces.application.ApplicationAssociate.createAndMaybeStoreManagedBeans(ApplicationAssociate.java:531)

com.sun.faces.el.ManagedBeanELResolver.getValue(ManagedBeanELResolver.java:82)

javax.el.CompositeELResolver.getValue(CompositeELResolver.java:53)

com.sun.faces.el.FacesCompositeELResolver.getValue(FacesCompositeELResolver.java:64)

org.apache.el.parser.AstIdentifier.getValue(AstIdentifier.java:45)

org.apache.el.parser.AstValue.getValue(AstValue.java:86)

org.apache.el.parser.AstEmpty.getValue(AstEmpty.java:29)

org.apache.el.parser.AstNot.getValue(AstNot.java:26)

org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:186)

com.sun.faces.application.ValueBindingValueExpressionAdapter.getValue(ValueBindingValueExpressionAdapter.java:102)

javax.faces.component.ValueExpressionValueBindingAdapter.getValue(ValueExpressionValueBindingAdapter.java:73)

javax.faces.component.UIComponentBase.isRendered(UIComponentBase.java:370)

javax.faces.component.UIComponent.encodeAll(UIComponent.java:880)

javax.faces.render.Renderer.encodeChildren(Renderer.java:137)

javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:809)

org.ajax4jsf.renderkit.RendererBase.renderChild(RendererBase.java:282)

org.ajax4jsf.renderkit.RendererBase.renderChildren(RendererBase.java:262)

org.richfaces.renderkit.TabRendererBase.encodeChildren(TabRendererBase.java:113)

javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:809)

org.ajax4jsf.renderkit.RendererBase.renderChild(RendererBase.java:282)

org.ajax4jsf.renderkit.RendererBase.renderChildren(RendererBase.java:262)

org.richfaces.renderkit.html.TabPanelRenderer.doEncodeChildren(TabPanelRenderer.java:266)

org.richfaces.renderkit.html.TabPanelRenderer.doEncodeChildren(TabPanelRenderer.java:261)

org.ajax4jsf.renderkit.RendererBase.encodeChildren(RendererBase.java:121)

javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:809)

javax.faces.component.UIComponent.encodeAll(UIComponent.java:886)

javax.faces.component.UIComponent.encodeAll(UIComponent.java:892)

com.sun.faces.application.ViewHandlerImpl.doRenderView(ViewHandlerImpl.java:244)

com.sun.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:175)

org.ajax4jsf.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:108)

org.ajax4jsf.application.AjaxViewHandler.renderView(AjaxViewHandler.java:216)

com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:106)

com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:251)

com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:144)

javax.faces.webapp.FacesServlet.service(FacesServlet.java:245)

org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:141)

org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:281)

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


Apache Tomcat/6.0.14

G

Então, o construtor do seu ManagerBean não pode ter parametro. Por ter parametro, o container não cosegue instanciá-lo.
Ao invés de passar o session no construtor, crie um set e get pra ele.

Outra coisa que você está fazendo é usar o DAO como ManagerBean, misturando a camada de controller com o model (MVC). O melhor é criar uma outra classe que funcione como ManagerBean (controller) e essa acessar o DAO (model). :wink:

:idea: Qdo for postar códigos fonte (java, xml, etc) use a tag [Code]. Ela deixa o código mais legível. :slight_smile:

A

Olá gleise, deu certo, muito obrigado!
Poderia me dar alguma dica sobre JSF + MVC? (onde por o que, por onde começar)
Mais uma vez obrigado

G

Então,

Comece delimitando as coisas no model, view e controller.
Com jsf, eu divido assim:
view = .jsf, css, html, js, etc.
controller = managerbeans que falam diretamente com os .jsf
model = minhas classes de negocio e a camada de persistencia.

Para um exemplo mais prático e claro, dê uma olhada no tutorial do Dali.

Nesse tutorial tem uma aplicação de exemplo.

boa sorte. :wink:

Criado 6 de dezembro de 2007
Ultima resposta 7 de dez. de 2007
Respostas 5
Participantes 2