java.lang.NoClassDefFoundError:无法初始化类org.hibernate.ejb.ejb3配置

java.lang.NoClassDefFoundError:无法初始化类org.hibernate.ejb.ejb3配置,java,hibernate,jpa,ejb,Java,Hibernate,Jpa,Ejb,我是EJB新手。我的经理告诉我在测试服务器中部署一个ejb应用程序进行一些修改。该应用程序已在我们的生产服务器中运行。但是当我部署应用程序时,我得到了一个异常 我们正在使用Glassfish应用服务器 异常的堆栈跟踪: java.lang.NoClassDefFoundError: Could not initialize class org.hibernate.ejb.Ejb3Configuration at org.hibernate.ejb.HibernatePersist

我是EJB新手。我的经理告诉我在测试服务器中部署一个ejb应用程序进行一些修改。该应用程序已在我们的生产服务器中运行。但是当我部署应用程序时,我得到了一个异常

我们正在使用Glassfish应用服务器

异常的堆栈跟踪:

java.lang.NoClassDefFoundError: Could not initialize class org.hibernate.ejb.Ejb3Configuration
        at org.hibernate.ejb.HibernatePersistence.createContainerEntityManagerFactory(HibernatePersistence.java:130)
        at com.sun.enterprise.server.PersistenceUnitLoaderImpl.load(PersistenceUnitLoaderImpl.java:149)
        at com.sun.enterprise.server.PersistenceUnitLoaderImpl.load(PersistenceUnitLoaderImpl.java:84)
        at com.sun.enterprise.server.AbstractLoader.loadPersistenceUnits(AbstractLoader.java:915)
        at com.sun.enterprise.server.ApplicationLoader.doLoad(ApplicationLoader.java:184)
        at com.sun.enterprise.server.TomcatApplicationLoader.doLoad(TomcatApplicationLoader.java:126)
        at com.sun.enterprise.server.ExtendedApplicationLoader.doLoad(ExtendedApplicationLoader.java:134)
        at com.sun.enterprise.server.AbstractLoader.load(AbstractLoader.java:240)  
        at com.sun.enterprise.server.ApplicationManager.applicationDeployed(ApplicationManager.java:336)  
        at com.sun.enterprise.server.ApplicationManager.applicationDeployed(ApplicationManager.java:210)  
        at com.sun.enterprise.server.ApplicationManager.applicationDeployed(ApplicationManager.java:645)  
        at com.sun.enterprise.admin.event.AdminEventMulticaster.invokeApplicationDeployEventListener(AdminEventMulticaster.java:959)  
        at com.sun.enterprise.admin.event.AdminEventMulticaster.handleApplicationDeployEvent(AdminEventMulticaster.java:943)
        at com.sun.enterprise.admin.event.AdminEventMulticaster.processEvent(AdminEventMulticaster.java:467)  
    at com.sun.enterprise.admin.event.AdminEventMulticaster.multicastEvent(AdminEventMulticaster.java:182)
    at com.sun.enterprise.admin.server.core.DeploymentNotificationHelper.multicastEvent(DeploymentNotificationHelper.java:308)
    at com.sun.enterprise.deployment.phasing.DeploymentServiceUtils.multicastEvent(DeploymentServiceUtils.java:231)
    at com.sun.enterprise.deployment.phasing.ServerDeploymentTarget.sendStartEvent(ServerDeploymentTarget.java:298)
    at com.sun.enterprise.deployment.phasing.ApplicationStartPhase.runPhase(ApplicationStartPhase.java:132)
    at com.sun.enterprise.deployment.phasing.DeploymentPhase.executePhase(DeploymentPhase.java:108)
    at com.sun.enterprise.deployment.phasing.PEDeploymentService.executePhases(PEDeploymentService.java:966)
    at com.sun.enterprise.deployment.phasing.PEDeploymentService.start(PEDeploymentService.java:609)
    at com.sun.enterprise.deployment.phasing.PEDeploymentService.start(PEDeploymentService.java:653)
    at com.sun.enterprise.admin.mbeans.ApplicationsConfigMBean.start(ApplicationsConfigMBean.java:773)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:616)
    at com.sun.enterprise.admin.MBeanHelper.invokeOperationInBean(MBeanHelper.java:390)
    at com.sun.enterprise.admin.MBeanHelper.invokeOperationInBean(MBeanHelper.java:373)
    at com.sun.enterprise.admin.config.BaseConfigMBean.invoke(BaseConfigMBean.java:477)
    at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:857)
    at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:795)
    at sun.reflect.GeneratedMethodAccessor18.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:616)
    at com.sun.enterprise.admin.util.proxy.ProxyClass.invoke(ProxyClass.java:90)
    at $Proxy1.invoke(Unknown Source)  
    at com.sun.enterprise.admin.server.core.jmx.SunoneInterceptor.invoke(SunoneInterceptor.java:304)
    at com.sun.enterprise.interceptor.DynamicInterceptor.invoke(DynamicInterceptor.java:170)
    at com.sun.enterprise.deployment.client.DeploymentClientUtils.startApplication(DeploymentClientUtils.java:159)
    at com.sun.enterprise.deployment.client.DeployAction.run(DeployAction.java:538)
    at java.lang.Thread.run(Thread.java:636)    
当我重新启动服务器时,我得到以下信息:

Unexpected error occurred while loading applications  
java.lang.IncompatibleClassChangeError: Implementing class  
at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:632)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:277)
    at java.net.URLClassLoader.access$000(URLClassLoader.java:73)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:212)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:319)
    at com.sun.appserv.server.util.ASURLClassLoader.loadClass(ASURLClassLoader.java:144)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:264)
    at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:332)
    at org.hibernate.ejb.Ejb3Configuration.<clinit>(Ejb3Configuration.java:107)
    at org.hibernate.ejb.HibernatePersistence.createContainerEntityManagerFactory(HibernatePersistence.java:130)
    at com.sun.enterprise.server.PersistenceUnitLoaderImpl.load(PersistenceUnitLoaderImpl.java:149)
    at com.sun.enterprise.server.PersistenceUnitLoaderImpl.load(PersistenceUnitLoaderImpl.java:84)
    at com.sun.enterprise.server.AbstractLoader.loadPersistenceUnits(AbstractLoader.java:915)
    at com.sun.enterprise.server.ApplicationLoader.doLoad(ApplicationLoader.java:184)
    at com.sun.enterprise.server.TomcatApplicationLoader.doLoad(TomcatApplicationLoader.java:126)
    at com.sun.enterprise.server.ExtendedApplicationLoader.doLoad(ExtendedApplicationLoader.java:134)
    at com.sun.enterprise.server.AbstractLoader.load(AbstractLoader.java:240)
    at com.sun.enterprise.server.AbstractManager.load(AbstractManager.java:226)
    at com.sun.enterprise.server.ApplicationLifecycle.onStartup(ApplicationLifecycle.java:224)
    at com.sun.enterprise.server.ApplicationServer.onStartup(ApplicationServer.java:449)
    at com.sun.enterprise.server.ondemand.OnDemandServer.onStartup(OnDemandServer.java:134)
    at com.sun.enterprise.server.PEMain.run(PEMain.java:409)
    at com.sun.enterprise.server.PEMain.main(PEMain.java:336)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:616)
    at com.sun.enterprise.server.PELaunch.main(PELaunch.java:415)  
加载应用程序时发生意外错误
java.lang.CompatibleClassChangeError:实现类
位于java.lang.ClassLoader.defineClass1(本机方法)
位于java.lang.ClassLoader.defineClass(ClassLoader.java:632)
位于java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
位于java.net.URLClassLoader.defineClass(URLClassLoader.java:277)
在java.net.URLClassLoader.access$000(URLClassLoader.java:73)
在java.net.URLClassLoader$1.run(URLClassLoader.java:212)
位于java.security.AccessController.doPrivileged(本机方法)
位于java.net.URLClassLoader.findClass(URLClassLoader.java:205)
位于java.lang.ClassLoader.loadClass(ClassLoader.java:319)
位于com.sun.appserv.server.util.ASURLClassLoader.loadClass(ASURLClassLoader.java:144)
位于java.lang.ClassLoader.loadClass(ClassLoader.java:264)
位于java.lang.ClassLoader.loadClassInternal(ClassLoader.java:332)
位于org.hibernate.ejb.Ejb3Configuration(Ejb3Configuration.java:107)
位于org.hibernate.ejb.HibernatePersistence.createContainerEntityManager工厂(HibernatePersistence.java:130)
位于com.sun.enterprise.server.PersistenceUnitLoaderImpl.load(PersistenceUnitLoaderImpl.java:149)
位于com.sun.enterprise.server.PersistenceUnitLoaderImpl.load(PersistenceUnitLoaderImpl.java:84)
位于com.sun.enterprise.server.AbstractLoader.loadPersistenceUnits(AbstractLoader.java:915)
位于com.sun.enterprise.server.ApplicationLoader.doLoad(ApplicationLoader.java:184)
位于com.sun.enterprise.server.TomcatApplicationLoader.doLoad(TomcatApplicationLoader.java:126)
位于com.sun.enterprise.server.ExtendedApplicationLoader.doLoad(ExtendedApplicationLoader.java:134)
位于com.sun.enterprise.server.AbstractLoader.load(AbstractLoader.java:240)
位于com.sun.enterprise.server.AbstractManager.load(AbstractManager.java:226)
位于com.sun.enterprise.server.ApplicationLifecycle.onStartup(ApplicationLifecycle.java:224)
位于com.sun.enterprise.server.ApplicationServer.onStartup(ApplicationServer.java:449)
位于com.sun.enterprise.server.ondemand.OnDemandServer.onStartup(OnDemandServer.java:134)
位于com.sun.enterprise.server.PEMain.run(PEMain.java:409)
位于com.sun.enterprise.server.PEMain.main(PEMain.java:336)
在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)处
在sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)中
在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)中
位于java.lang.reflect.Method.invoke(Method.java:616)
位于com.sun.enterprise.server.PELaunch.main(PELaunch.java:415)
在这里,您还可以在org.hibernate.ejb.Ejb3Configuration(Ejb3Configuration.java:107)上看到相同的问题

请任何人帮助我为什么会出现此错误。
这是非常需要的

谢谢

问题解决了。
实际上,
hibernate annotations.jar
文件在服务器的
lib
文件夹中的版本不同。
可能有人改变了。现在它工作正常了


谢谢。

检查类路径中是否有文件
hibernate entitymanager.jar
。您应该提供完整的异常。我认为原因不存在。@SirRotN我已经更新了完整的异常。hibernate-annotation.jar和hibernate-common-annotation.jar是不同的吗?我包括了hibernate-common-annotation.jar,但仍然得到java.lang.NoClassDefFoundError:无法初始化类org.hibernate.ejb.ejb3配置。我正在使用hibernate和jpa规范