Problema Com Hibernate + JSF

16 respostas
colored

Bom to Tentando entender como integrar Hibernate + JSF, mas to com alguns problemas,
criei algumas classes apenas com 1 atributo apenas pra entender como fica a logica…

Classe Usuario

@Entity
public class Usuario {
	
	@Id
	private int id;

	public int getId() {
		return id;
	}

	public void setId(int id) {
		this.id = id;
	}
}

Classe UsuarioDAO

public class UsuarioDAO {
	
	private Session session;
	
	public UsuarioDAO(Session session) {
		this.session = session;
	}
	
	public List<Usuario> Listar(){
		Criteria c = session.createCriteria(Usuario.class);
		return c.list();
	}
}

Até ai tudo bem, mas qdo vou criar uma UsuarioFace que é a classe que será o ManagedBean da erro.
Alguem pode me ajudar com 1 exemplo como ficaria esse classe do ManagedBean…

Muito Obrigado :smiley:

16 Respostas

renanreismartins

qual o erro ?

vc nao precisa instanciar seu managed beans…

abrassssss

colored

Ele da Erro 404 na Pagina.
Então como eu deveria fazer???

Pq a parte do Hibernate eu entendo, mas pra integrar com JSF q ta foda.

renanreismartins

erro 404 nao tem nada haver com a integraçado do hibernate com jsf… erro 404 eh qdo vc esta acessando um recurso inexistente, veja se esta digitando o endereco corretamente no browser e se realmente tem o deploy da sua app no seu servidor.

abrasssss

T

erro 404 é qdo ele não encontrao jsp (sua página)… na questão das páginas ta td certo???

colored

Tipo ela funciona de boa.
Criei essa classe n sei c seria assim mas eu fiz.

Class FuncionarioFace

public class FuncionarioFace {
	
	private Session session;
	private FuncionarioDAO funcDao;
	private Funcionario funcionario;
	
	public FuncionarioFace() {
		session = HibernateUtil.getSession();
		funcDao = new FuncionarioDAO(session);
		funcionario = new Funcionario();
	}
	
	public List<Funcionario> Listando(){
		return funcDao.Listar();
	}
	
	public void Save(Funcionario f){
		funcDao.SalvarFuncionario(f);
	}

	public FuncionarioDAO getFuncDao() {
		return funcDao;
	}

	public Funcionario getFuncionario() {
		return funcionario;
	}
}

Até ai c eu chamar a Index.jsp lá funciona, porem dps q eu crio o Managed Bean ele começa dar 404

eu tb achei estranho mas eh isso.

renanreismartins

cara nao tem mto sentido isso…

como vc mapeou o servlet do jsf ? n deveria chamar .jsf ?

abrasss

colored

Claro O Arquivo eh Jsp…
Mas no Caminho eh JSF.
Quanto isso n tem problema…

Sim ta mapeado…

T

vc definiu uma outra rota pra ele depois que for executado esse seu .jsf (jsp)??? digo, ele sabe pra onde tem que ir depois de fazer essa ação???

colored

Então. nem deu tempo pq nem a index. ele n ta abrindo nem a pagina inicial kero dizer…
entende?

T

faz o seguinte posta ae o código das suas páginas, do seu web.xml,

colored

Web xml.

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
  <display-name>Jsf</display-name>
  
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
  
  <servlet>
    <servlet-name>Faces Servlet</servlet-name>
    <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
  </servlet>
  
  <servlet-mapping>
    <servlet-name>Faces Servlet</servlet-name>
    <url-pattern>/faces/*</url-pattern>
    <url-pattern>*.jsf</url-pattern>
  
  </servlet-mapping>
</web-app>

E a pagina index.jsp tanto faz qdo cria o ManagedBean da pau.

T

BOm, eu nao aconselho vc usar 2 tipos de URL-pattern, mas… em que momento vc cria esse seu ManagedBean? Ta em escopo de sessao? Tá tudo certo no faces-config.xml???
Olha no console do seu servidor se esetá aparecendo alguma Exception…

colored

FacesConfig

<?xml version="1.0" encoding="UTF-8"?>

<faces-config
    xmlns="http://java.sun.com/xml/ns/javaee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_1_2.xsd"
    version="1.2">
    
	<managed-bean>
		<managed-bean-name>funcionarioFace</managed-bean-name>
		<managed-bean-class>Faces.FuncionarioFace</managed-bean-class>
		<managed-bean-scope>session</managed-bean-scope>
	</managed-bean>

</faces-config>

Exception aparece:

SEVERE: Exception sending context initialized event to listener instance of class com.sun.faces.config.ConfigureListener
java.lang.NoClassDefFoundError: Lorg/hibernate/Session;
	at java.lang.Class.getDeclaredFields0(Native Method)
	at java.lang.Class.privateGetDeclaredFields(Unknown Source)
	at java.lang.Class.getDeclaredFields(Unknown Source)
	at com.sun.faces.config.ManagedBeanFactoryImpl.scanForAnnotations(ManagedBeanFactoryImpl.java:1133)
	at com.sun.faces.config.ManagedBeanFactoryImpl.<init>(ManagedBeanFactoryImpl.java:156)
	at com.sun.faces.config.ConfigureListener.configure(ConfigureListener.java:926)
	at com.sun.faces.config.ConfigureListener.configure(ConfigureListener.java:507)
	at com.sun.faces.config.ConfigureListener.contextInitialized(ConfigureListener.java:402)
	at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3934)
	at org.apache.catalina.core.StandardContext.start(StandardContext.java:4429)
	at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
	at org.apache.catalina.core.StandardHost.start(StandardHost.java:722)
	at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
	at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
	at org.apache.catalina.core.StandardService.start(StandardService.java:516)
	at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
	at org.apache.catalina.startup.Catalina.start(Catalina.java:583)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
	at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
Caused by: java.lang.ClassNotFoundException: org.hibernate.Session
	at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1387)
	at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1233)
	at java.lang.ClassLoader.loadClassInternal(Unknown Source)
	... 23 more
T

essa exception não lhe diz nada??? Vc incluiu todas as bibliotecas do hibernate???

colored

Sim por que eu testo. os metodos por console. e funciona de boa… agora qdo vou integrar com JSF da pau qdo crio o ManagedBean.

colored

Alguem tem 1 exemplo de como integrar Jsf + hibernate Usando DAO?
QUem tiver por favor me ajuda q eu empakei e n consigo mais kkkk…

Obrigado

Criado 15 de junho de 2009
Ultima resposta 15 de jun. de 2009
Respostas 16
Participantes 3