JSF e Hibernate

5 respostas
barcellosrod

E ae galera, estou com um problemihha na abertura de conexão com a base usando hibernate, mas somente quando rodo o projeto hibernate dentro de uma aplicação web. Quando rodo o mesmo projeto através de uma aplicação desktop, o mesmo abre a conexão sem erros.
Pelo que pude observar o problema se dá no momento da inicialização do objeto sessionfactory utiliznando a classe hibernateUtil, gerada automaticamente por meio do hibernate tools.
Alguem tem uma idéia de por onde posso começar??? Sou novo na área e estou encontrando algumas dificuldades, apesar de ja ter lido alguns materiais sobre o assunto…

Segue log do servidor…

java.lang.ExceptionInInitializerError

javax.faces.el.EvaluationException: java.lang.ExceptionInInitializerError

at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:91)

at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:91)

at com.sun.rave.web.ui.appbase.faces.ActionListenerImpl.processAction(ActionListenerImpl.java:91)

at javax.faces.component.UICommand.broadcast(UICommand.java:383)

at com.sun.webui.jsf.component.WebuiCommand.broadcast(WebuiCommand.java:160)

at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:447)

at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:752)

at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:97)

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

at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:117)

at com.sun.faces.extensions.avatar.lifecycle.PartialTraversalLifecycle.execute(PartialTraversalLifecycle.java:94)

at javax.faces.webapp.FacesServlet.service(FacesServlet.java:244)

at org.apache.catalina.core.ApplicationFilterChain.servletService(ApplicationFilterChain.java:411)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:317)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:198)

at com.sun.webui.jsf.util.UploadFilter.doFilter(UploadFilter.java:267)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:230)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:198)

at org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:390)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:230)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:198)

at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:288)

at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:271)

at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:202)

at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632)

at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577)

at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:94)

at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:206)

at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632)

at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577)

at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:571)

at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1080)

at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:150)

at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632)

at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577)

at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:571)

at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1080)

at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:272)

at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.invokeAdapter(DefaultProcessorTask.java:637)

at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.doProcess(DefaultProcessorTask.java:568)

at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.process(DefaultProcessorTask.java:813)

at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.executeProcessorTask(DefaultReadTask.java:341)

at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:263)

at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:214)

at com.sun.enterprise.web.portunif.PortUnificationPipeline$PUTask.doTask(PortUnificationPipeline.java:380)

at com.sun.enterprise.web.connector.grizzly.TaskBase.run(TaskBase.java:265)

at com.sun.enterprise.web.connector.grizzly.ssl.SSLWorkerThread.run(SSLWorkerThread.java:106)

Caused by: java.lang.ExceptionInInitializerError

at br.com.sispi.hibernate.data.HibernateUtil.(HibernateUtil.java:34)

at br.com.sispi.controlador.ControleLogin.fazerLogin(ControleLogin.java:40)

at projetorecarga.Logon.logonBtn_action(Logon.java:265)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

at java.lang.reflect.Method.invoke(Method.java:597)

at com.sun.el.parser.AstValue.invoke(AstValue.java:187)

at com.sun.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:297)

at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:77)

 46 more

Caused by: java.lang.NoSuchMethodError: org.objectweb.asm.ClassWriter.(Z)V

Minha classe HibernateUtil está assim…

import org.apache.commons.logging.Log;

import org.apache.commons.logging.LogFactory;

import org.hibernate.HibernateException;

import org.hibernate.Session;

import org.hibernate.SessionFactory;

import org.hibernate.cfg.Configuration;

public class HibernateUtil{

public static final SessionFactory sessionFactory;

    static Log log = LogFactory.getLog(HibernateUtil.class);

static{
	try{
		//Create the SessionFactory from hibernate.cfg.xml
		sessionFactory = new Configuration().configure().buildSessionFactory();
	}
	catch (Throwable ex){
		//Make sure you log the exception, as it might be swallowed
//			System.err.println(“Initial SessionFactory creation failed.”+ex);

throw new ExceptionInInitializerError(ex);

}

}
public static final ThreadLocal session = new ThreadLocal();

public static Session currentSession() throws HibernateException{
	Session s = (Session)session.get();
	if (s == null){
		s = sessionFactory.openSession();
		session.set(s);
	}
    return(s);
}

public static void closeSession() throws HibernateException{
	Session s = (Session)session.get();
	if (s != null){
		s.close();
	}
	session.set(null);
}

public static SessionFactory getSessionFactory() {
	return sessionFactory;
}

}

Quando faço um objeto Session receber HibernateUtil.getSessionFactory().openSession() gera o erro citado…
Desde já agradeço!!!

5 Respostas

ThiagoWorldCoder

Para saber que .jars são obrigatórios do hibernate, se nao me engano, quando você descompacta o hibernate, dentro dele tem a pasta lib, onde você pega os .jars. Lá tem o READ-ME que fala quais .jars que são obrigatórios.

Parece que está faltando o asm.jar do hibernate!!

deixa eu aproveitar e te perguntar… você está tentando usar que servidor de aplicação ? o JBoss? é que eu tô afim de usar ele e estou apanhando um pouco!!

valeu

barcellosrod

Olá Thiago, obrigado pela resposta;
Respondendo a sua pergunta, estou usando o GlassFish V2 embutindo no NetbBeans 6.1. Quanto aos .jars que estou usando, são os eguintes:

ant-1.6.5
antlr-2.7.6
asm-attrs
asm
c3p3-0.9.1
cglib-2.1.3
commons-collection-2.1.1
commons-logging-1.0.4
dom4j-1.6.1
ehcache-1.2.3
freemarker
hibernate-tools
hibernate3
jta
log4j-1.2.11
postgresql-8.3-603.jdbc3

sendo todos arquivos .jar

Obrigado pelo post e se puderem dar mais uma mão ai, agradeço!!!

ThiagoWorldCoder

Por favor, quando descobrir o que estava errado me avise!! Quero saber também!

barcellosrod

Gostaria de saber se tenho que referenciar alguma entrada do hibernate na session, ou criar algum tipo de bean para ele, ou mesmo algum tipo de entrada no arquivo web.xml ou faces-config.xml. Desde já agradeço qualquer tipo de colaboração…

barcellosrod

Galera, consegui resolver o problema, inseri os seguinte jars na pasta lib do projeto web:
c3p3-0.9.1
cglib-nodep
commons-collection-2.1.1
commons-logging-1.0.4
dom4j-1.6.1
ehcache-1.2.3
hibernate3
hibernate-entitymanager
log4j-1.2.11
postgresql-8.3-603.jdbc3

E os seguintes na pasta lib do projeto hibernate
ant-1.6.5
antlr-2.7.6
asm-attrs
asm
c3p3-0.9.1
cglib-nodep
commons-collection-2.1.1
commons-lang
commons-logging-1.0.4
dom4j-1.6.1
ehcache-1.2.3
hibernate3
jta
log4j-1.2.11
postgresql-8.3-603.jdbc3

Criado 26 de junho de 2008
Ultima resposta 1 de jul. de 2008
Respostas 5
Participantes 2