Hibernate - sessionfactory

1 resposta
J

Boa tarde, estou tentando implementar um crud com hibernate 4 mas estou tendo algumas dificuldades, esta lançando o seguinte stacktrace :

Initial SessionFactory creation failed.java.lang.NoClassDefFoundError: org/hibernate/service/ServiceRegistryBuilder

Ago 15, 2012 1:13:22 PM com.sun.faces.application.view.FaceletViewHandlingStrategy handleRenderException

Grave: Error Rendering View[/index.xhtml]

javax.el.ELException: /index.xhtml @11,74 value="#{LivroController.listarLivros}": Error reading listarLivros on type controller.LivroController

at com.sun.faces.facelets.el.TagValueExpression.getValue(TagValueExpression.java:114)

at javax.faces.component.ComponentStateHelper.eval(ComponentStateHelper.java:193)

at javax.faces.component.ComponentStateHelper.eval(ComponentStateHelper.java:181)

at javax.faces.component.UIData.getValue(UIData.java:557)

at javax.faces.component.UIData.getDataModel(UIData.java:1297)

at javax.faces.component.UIData.setRowIndex(UIData.java:450)

at com.sun.faces.renderkit.html_basic.TableRenderer.encodeBegin(TableRenderer.java:81)

at javax.faces.component.UIComponentBase.encodeBegin(UIComponentBase.java:828)

at javax.faces.component.UIData.encodeBegin(UIData.java:940)

at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1650)

at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1655)

at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1655)

at com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:399)

at com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:131)

at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:121)

at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)

at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139)

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

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

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

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

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

at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)

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

at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)

at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927)

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

at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)

at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:999)

at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:565)

at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:307)

at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)

at java.lang.Thread.run(Unknown Source)

Caused by: java.lang.ExceptionInInitializerError

at utils.HibernateUtil.getSessionFactory(HibernateUtil.java:44)

at dao.LivroDaoImp.list(LivroDaoImp.java:31)

at controller.LivroController.getListarLivros(LivroController.java:33)

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 javax.el.BeanELResolver.getValue(BeanELResolver.java:87)

at com.sun.faces.el.DemuxCompositeELResolver._getValue(DemuxCompositeELResolver.java:176)

at com.sun.faces.el.DemuxCompositeELResolver.getValue(DemuxCompositeELResolver.java:203)

at org.apache.el.parser.AstValue.getValue(AstValue.java:169)

at org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:189)

at com.sun.faces.facelets.el.TagValueExpression.getValue(TagValueExpression.java:109)

 33 more

Caused by: java.lang.NoClassDefFoundError: org/hibernate/service/ServiceRegistryBuilder

at utils.HibernateUtil.getSessionFactory(HibernateUtil.java:32)

 45 more

Caused by: java.lang.ClassNotFoundException: org.hibernate.service.ServiceRegistryBuilder

at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1711)

at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1556)

 46 more
Ago 15, 2012 1:13:22 PM org.apache.catalina.core.StandardWrapperValve invoke

Grave: Servlet.service() for servlet [Faces Servlet] in context with path [/ProjectJsf] threw exception [null] with root cause

java.lang.ClassNotFoundException: org.hibernate.service.ServiceRegistryBuilder

at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1711)

at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1556)

at utils.HibernateUtil.getSessionFactory(HibernateUtil.java:32)

at dao.LivroDaoImp.list(LivroDaoImp.java:31)

at controller.LivroController.getListarLivros(LivroController.java:33)

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 javax.el.BeanELResolver.getValue(BeanELResolver.java:87)

at com.sun.faces.el.DemuxCompositeELResolver._getValue(DemuxCompositeELResolver.java:176)

at com.sun.faces.el.DemuxCompositeELResolver.getValue(DemuxCompositeELResolver.java:203)

at org.apache.el.parser.AstValue.getValue(AstValue.java:169)

at org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:189)

at com.sun.faces.facelets.el.TagValueExpression.getValue(TagValueExpression.java:109)

at javax.faces.component.ComponentStateHelper.eval(ComponentStateHelper.java:193)

at javax.faces.component.ComponentStateHelper.eval(ComponentStateHelper.java:181)

at javax.faces.component.UIData.getValue(UIData.java:557)

at javax.faces.component.UIData.getDataModel(UIData.java:1297)

at javax.faces.component.UIData.setRowIndex(UIData.java:450)

at com.sun.faces.renderkit.html_basic.TableRenderer.encodeBegin(TableRenderer.java:81)

at javax.faces.component.UIComponentBase.encodeBegin(UIComponentBase.java:828)

at javax.faces.component.UIData.encodeBegin(UIData.java:940)

at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1650)

at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1655)

at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1655)

at com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:399)

at com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:131)

at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:121)

at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)

at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139)

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

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

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

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

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

at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)

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

at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)

at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927)

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

at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)

at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:999)

at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:565)

at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:307)

at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)

at java.lang.Thread.run(Unknown Source)

minha classe que faz o sessionFactory é a seguinte:

package utils;

import model.Livro;

import org.hibernate.SessionFactory;
import org.hibernate.metamodel.Metadata;
import org.hibernate.metamodel.MetadataSources;
import org.hibernate.service.ServiceRegistry;
import org.hibernate.service.ServiceRegistryBuilder;

/**
 * Hibernate Utility class with a convenient method to get Session Factory
 * object.
 * 
 * @author José Alexandre
 */
public class HibernateUtil {

	private static SessionFactory sessionFactory;

	private HibernateUtil() {
	}

	public static SessionFactory getSessionFactory() {
		if (sessionFactory == null) {
			try {
				// Create the SessionFactory from standard (hibernate.cfg.xml)
				// config file.
				System.out.println("abrindo sessão");
				ServiceRegistry serviceRegistry = new ServiceRegistryBuilder().configure().buildServiceRegistry();
				MetadataSources metadataSources = new MetadataSources(serviceRegistry);
				metadataSources.addResource("hibernate.cfg.xml")
						.addAnnotatedClass(Livro.class);
				Metadata metadata = metadataSources.buildMetadata();
				SessionFactory sessionFactory = metadataSources.buildMetadata()
						.buildSessionFactory();
				;
			} catch (Throwable ex) {
				// Log the exception.
				System.err.println("Initial SessionFactory creation failed."
						+ ex);
				throw new ExceptionInInitializerError(ex);
			}
			return sessionFactory;
		} else {
			return sessionFactory;
		}
	}

	
}

Por favor pessoal se puderem me dar algum norte ficaria muito grato, valeu pela atenção.

1 Resposta

fbl.lucas

Ele não ta encontrando a classe ServiceRegistryBuilder. Da uma olhada ai nos seus jars…

java.lang.ClassNotFoundException: org.hibernate.service.ServiceRegistryBuilder
Criado 15 de agosto de 2012
Ultima resposta 15 de ago. de 2012
Respostas 1
Participantes 2