如何解决java.lang.NoSuchMethodError:org.hibernate.integrator.internal.IntegratorServiceImpl

如何解决java.lang.NoSuchMethodError:org.hibernate.integrator.internal.IntegratorServiceImpl,java,hibernate,nosuchmethoderror,Java,Hibernate,Nosuchmethoderror,我不熟悉hibernate,我试图在持久层中使用hibernate构建一个JSF应用程序。这就是我获得会话工厂的方式 Configuration config = new Configuration().configure("hibernate.cfg.xml"); StandardServiceRegistryBuilder ssrb = new StandardServiceRegistryBuilder().applySettings(config.getPropertie

我不熟悉hibernate,我试图在持久层中使用hibernate构建一个JSF应用程序。这就是我获得会话工厂的方式

Configuration config = new Configuration().configure("hibernate.cfg.xml");
        StandardServiceRegistryBuilder ssrb = new StandardServiceRegistryBuilder().applySettings(config.getProperties());
        factory = config.buildSessionFactory(ssrb.build());
但是我在运行应用程序时遇到以下错误

Error Message:
Caused by: java.lang.NoSuchMethodError: org.hibernate.integrator.internal.IntegratorServiceImpl.<init>(Ljava/util/LinkedHashSet;Lorg/hibernate/boot/registry/classloading/spi/ClassLoaderService;)V
    at org.hibernate.boot.registry.BootstrapServiceRegistryBuilder.build(BootstrapServiceRegistryBuilder.java:247)
    at org.hibernate.boot.registry.StandardServiceRegistryBuilder.<init>(StandardServiceRegistryBuilder.java:73)
    at com.sherwin.j29.jpa.factory.JPASessionFactory.createSessionFactory(JPASessionFactory.java:19)
    at com.sherwin.j29.jpa.factory.JPASessionFactory.getSessionFactory(JPASessionFactory.java:13)
    at com.sherwin.j29.dao.WorkItemDAO.<init>(WorkItemDAO.java:24)
    at com.sherwin.j29.dao.WorkItemDAO$Proxy$_$$_WeldClientProxy.<init>(WorkItemDAO$Proxy$_$$_WeldClientProxy.java)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
    at java.lang.reflect.Constructor.newInstance(Unknown Source)
    at java.lang.Class.newInstance(Unknown Source)
    at org.jboss.weld.util.reflection.SecureReflections$16.work(SecureReflections.java:344)
    at org.jboss.weld.util.reflection.SecureReflectionAccess.run(SecureReflectionAccess.java:52)
    at org.jboss.weld.util.reflection.SecureReflectionAccess.runAsInstantiation(SecureReflectionAccess.java:173)
    at org.jboss.weld.util.reflection.SecureReflections.newInstance(SecureReflections.java:341)
    at org.jboss.weld.bean.proxy.ProxyFactory.create(ProxyFactory.java:237)
    at org.jboss.weld.bean.proxy.ClientProxyFactory.create(ClientProxyFactory.java:105)
    at org.jboss.weld.bean.proxy.ClientProxyProvider.createClientProxy(ClientProxyProvider.java:87)
    at org.jboss.weld.bean.proxy.ClientProxyProvider.access$000(ClientProxyProvider.java:43)
    at org.jboss.weld.bean.proxy.ClientProxyProvider$1.load(ClientProxyProvider.java:53)
    at org.jboss.weld.bean.proxy.ClientProxyProvider$1.load(ClientProxyProvider.java:46)
    at com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3589)
    at com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2374)
    at com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2337)
    at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2252)
错误消息:
原因:java.lang.NoSuchMethodError:org.hibernate.integrator.internal.IntegratorServiceImpl.(Ljava/util/LinkedHashSet;Lorg/hibernate/boot/registry/classloading/spi/ClassLoaderService;)V
位于org.hibernate.boot.registry.BootstrapServiceRegistryBuilder.build(BootstrapServiceRegistryBuilder.java:247)
位于org.hibernate.boot.registry.StandardServiceRegistryBuilder。(StandardServiceRegistryBuilder.java:73)
位于com.sherwin.j29.jpa.factory.JPASessionFactory.createSessionFactory(JPASessionFactory.java:19)
位于com.sherwin.j29.jpa.factory.JPASessionFactory.getSessionFactory(JPASessionFactory.java:13)
位于com.sherwin.j29.dao.WorkItemDAO(WorkItemDAO.java:24)
位于com.sherwin.j29.dao.WorkItemDAO$Proxy$\u$$\ uWeldClientProxy。(WorkItemDAO$Proxy$\u$$\ uWeldClientProxy.java)
位于sun.reflect.NativeConstructorAccessorImpl.newInstance0(本机方法)
位于sun.reflect.NativeConstructorAccessorImpl.newInstance(未知源)
位于sun.reflect.delegatingConstructor或AccessorImpl.newInstance(未知源)
位于java.lang.reflect.Constructor.newInstance(未知源)
位于java.lang.Class.newInstance(未知源)
位于org.jboss.weld.util.reflection.SecureReflections$16.work(SecureReflections.java:344)
位于org.jboss.weld.util.reflection.SecureReflectionAccess.run(SecureReflectionAccess.java:52)
位于org.jboss.weld.util.reflection.SecureReflectionAccess.RunAsInstallation(SecureReflectionAccess.java:173)
位于org.jboss.weld.util.reflection.SecureReflections.newInstance(SecureReflections.java:341)
位于org.jboss.weld.bean.proxy.ProxyFactory.create(ProxyFactory.java:237)
位于org.jboss.weld.bean.proxy.ClientProxyFactory.create(ClientProxyFactory.java:105)
位于org.jboss.weld.bean.proxy.ClientProxyProvider.createClientProxy(ClientProxyProvider.java:87)
访问org.jboss.weld.bean.proxy.ClientProxyProvider.access$000(ClientProxyProvider.java:43)
位于org.jboss.weld.bean.proxy.ClientProxyProvider$1.load(ClientProxyProvider.java:53)
位于org.jboss.weld.bean.proxy.ClientProxyProvider$1.load(ClientProxyProvider.java:46)
在com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3589)上
位于com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2374)
位于com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2337)
位于com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2252)
我正在使用Hibernate4.3.6


如果我遗漏了什么,请告诉我。

确保您已从类路径中删除所有以前版本的Hibernate


在github上查看它,我不明白为什么会出现这种情况,除非版本冲突导致类加载器问题,因为IntegratorServiceImpl存在于您正在/正在使用的两个版本中,这对我来说意味着一个类加载器问题

如果您最近有任何包升级,请尝试清理并构建您的项目。

请检查您的libI中可能存在多个hibernate jar,其中包括hibernate 4.3.6最终jar。。但是,当我的jboss启动时,它会显示以下行。08:39:31473信息[org.hibernate.annotations.common.Version](服务器服务线程池--48)HCANN000001:hibernate Commons注释{4.0.1.Final-redhat-2}08:39:31491信息[org.hibernate.Version](服务器服务线程池--48)HHH000412:hibernate核心{4.2.14.SP1-redhat-1}08:39:31494信息[org.hibernate.cfg.Environment](ServerService线程池--48)HH000206:hibernate.properties未找到不确定从何处获取hibernate核心4.2.14 SP1