(Iniciante) Erro no JSF = Cant instantiate class:

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

Tem como vc passar o stacktrace do erro ?

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

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:

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

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: