在glassfish上部署.EAR时出错“java.lang.NoClassDefFoundError:javax / persistence / EntityManager”

时间:2013-11-05 20:14:42

标签: jpa glassfish

目前我在glassfish 4上部署.ear文件时遇到问题。 这有一个JPA应用程序,我使用EJB启动会话模块来测试它。 当我在本地glassfish服务器上部署此应用程序时,出现以下错误。

“java.lang.NoClassDefFoundError:javax / persistence / EntityManager”。

我确保将所有必需的库包含在classpath中。任何人都可以帮我确定问题所在吗?

以下是完整的错误日志:

2013-11-05T15:08:31.330-0500] [glassfish 4.0] [INFO] [] [javax.enterprise.system.tools.deployment.common] [tid: _ThreadID=32 _ThreadName=admin-listener(1)] [timeMillis: 1383682111330] [levelValue: 800] [[
  visiting unvisited references]]

[2013-11-05T15:08:31.500-0500] [glassfish 4.0] [INFO] [] [javax.enterprise.system.tools.deployment.common] [tid: _ThreadID=32 _ThreadName=admin-listener(1)] [timeMillis: 1383682111500] [levelValue: 800] [[
  visiting unvisited references]]

[2013-11-05T15:08:31.505-0500] [glassfish 4.0] [SEVERE] [] [global] [tid: _ThreadID=32 _ThreadName=admin-listener(1)] [timeMillis: 1383682111505] [levelValue: 1000] [[
  Class [ javax/persistence/EntityManager ] not found. Error while loading [ class edu.stevens.cs548.clinic.domain.PatientDAO ]]]

[2013-11-05T15:08:31.505-0500] [glassfish 4.0] [SEVERE] [] [global] [tid: _ThreadID=32 _ThreadName=admin-listener(1)] [timeMillis: 1383682111505] [levelValue: 1000] [[
  Class [ javax/persistence/EntityManager ] not found. Error while loading [ class edu.stevens.cs548.clinic.domain.ProviderDAO ]]]

[2013-11-05T15:08:31.594-0500] [glassfish 4.0] [INFO] [] [org.eclipse.persistence.session.file:/users/ganu/ec2/glassfish4/glassfish/domains/domain1/eclipseApps/Clinic/lib/ClinicDomain_1.jar/_ClinicDomain_1] [tid: _ThreadID=32 _ThreadName=admin-listener(1)] [timeMillis: 1383682111594] [levelValue: 800] [[
  EclipseLink, version: Eclipse Persistence Services - 2.5.0.v20130507-3faac2b]]

[2013-11-05T15:08:31.601-0500] [glassfish 4.0] [INFO] [] [org.eclipse.persistence.session.file:/users/ganu/ec2/glassfish4/glassfish/domains/domain1/eclipseApps/Clinic/lib/ClinicDomain_1.jar/_ClinicDomain_1.connection] [tid: _ThreadID=32 _ThreadName=admin-listener(1)] [timeMillis: 1383682111601] [levelValue: 800] [[
  file:/users/ganu/ec2/glassfish4/glassfish/domains/domain1/eclipseApps/Clinic/lib/ClinicDomain_1.jar/_ClinicDomain_1 login successful]]

[2013-11-05T15:08:31.605-0500] [glassfish 4.0] [WARNING] [] [org.eclipse.persistence.default] [tid: _ThreadID=32 _ThreadName=admin-listener(1)] [timeMillis: 1383682111605] [levelValue: 900] [[
  The collection of metamodel types is empty. Model classes may not have been found during entity search for Java SE and some Java EE container managed persistence units.  Please verify that your entity classes are referenced in persistence.xml using either <class> elements or a global <exclude-unlisted-classes>false</exclude-unlisted-classes> element]]

[2013-11-05T15:08:31.606-0500] [glassfish 4.0] [WARNING] [] [javax.org.glassfish.persistence.org.glassfish.persistence.common] [tid: _ThreadID=32 _ThreadName=admin-listener(1)] [timeMillis: 1383682111606] [levelValue: 900] [[
  Cannot create tables for application Clinic. The expected DDL file default_ClinicDomain_1_createDDL.jdbc is not available.]]

[2013-11-05T15:08:31.614-0500] [glassfish 4.0] [INFO] [ejb.portable_jndi_names] [javax.enterprise.system.container.ejb.com.sun.ejb.containers] [tid: _ThreadID=32 _ThreadName=admin-listener(1)] [timeMillis: 1383682111614] [levelValue: 800] [[
  EJB5181:Portable JNDI names for EJB Test: [java:global/Clinic/ClinicTest/Test!edu.stevens.cs548.clinic.test.Test, java:global/Clinic/ClinicTest/Test]]]

[2013-11-05T15:08:31.836-0500] [glassfish 4.0] [INFO] [] [edu.stevens.cs548.clinic.test.Test] [tid: _ThreadID=32 _ThreadName=admin-listener(1)] [timeMillis: 1383682111836] [levelValue: 800] [[
  Initializing the user database.#######]]

[2013-11-05T15:08:31.837-0500] [glassfish 4.0] [INFO] [] [edu.stevens.cs548.clinic.test.Test] [tid: _ThreadID=32 _ThreadName=admin-listener(1)] [timeMillis: 1383682111837] [levelValue: 800] [[
  Creating provider enrtity.######]]

[2013-11-05T15:08:31.837-0500] [glassfish 4.0] [INFO] [] [edu.stevens.cs548.clinic.test.Test] [tid: _ThreadID=32 _ThreadName=admin-listener(1)] [timeMillis: 1383682111837] [levelValue: 800] [[
  Created provider enrtity.######]]

[2013-11-05T15:08:31.839-0500] [glassfish 4.0] [SEVERE] [] [javax.enterprise.system.tools.deployment.common] [tid: _ThreadID=32 _ThreadName=admin-listener(1)] [timeMillis: 1383682111839] [levelValue: 1000] [[
  Exception while invoking class org.glassfish.ejb.startup.EjbApplication start method
javax.ejb.EJBException: javax.ejb.CreateException: Initialization failed for Singleton Test
    at com.sun.ejb.containers.AbstractSingletonContainer$SingletonContextFactory.create(AbstractSingletonContainer.java:656)
    at com.sun.ejb.containers.AbstractSingletonContainer.instantiateSingletonInstance(AbstractSingletonContainer.java:396)
    at org.glassfish.ejb.startup.SingletonLifeCycleManager.initializeSingleton(SingletonLifeCycleManager.java:219)
    at org.glassfish.ejb.startup.SingletonLifeCycleManager.initializeSingleton(SingletonLifeCycleManager.java:180)
    at org.glassfish.ejb.startup.SingletonLifeCycleManager.doStartup(SingletonLifeCycleManager.java:158)
    at org.glassfish.ejb.startup.EjbApplication.start(EjbApplication.java:166)
    at org.glassfish.internal.data.EngineRef.start(EngineRef.java:122)
    at org.glassfish.internal.data.ModuleInfo.start(ModuleInfo.java:291)
    at org.glassfish.internal.data.ApplicationInfo.start(ApplicationInfo.java:352)
    at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:497)
    at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:219)
    at org.glassfish.deployment.admin.DeployCommand.execute(DeployCommand.java:491)
    at com.sun.enterprise.v3.admin.CommandRunnerImpl$2$1.run(CommandRunnerImpl.java:527)
    at com.sun.enterprise.v3.admin.CommandRunnerImpl$2$1.run(CommandRunnerImpl.java:523)
    at java.security.AccessController.doPrivileged(Native Method)
    at javax.security.auth.Subject.doAs(Subject.java:356)
    at com.sun.enterprise.v3.admin.CommandRunnerImpl$2.execute(CommandRunnerImpl.java:522)
    at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:546)
    at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:1423)
    at com.sun.enterprise.v3.admin.CommandRunnerImpl.access$1500(CommandRunnerImpl.java:108)
    at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1762)
    at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1674)
    at com.sun.enterprise.v3.admin.AdminAdapter.doCommand(AdminAdapter.java:534)
    at com.sun.enterprise.v3.admin.AdminAdapter.onMissingResource(AdminAdapter.java:224)
    at org.glassfish.grizzly.http.server.StaticHttpHandler.service(StaticHttpHandler.java:297)
    at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:246)
    at org.glassfish.grizzly.http.server.HttpHandler.runService(HttpHandler.java:191)
    at org.glassfish.grizzly.http.server.HttpHandler.doHandle(HttpHandler.java:168)
    at org.glassfish.grizzly.http.server.HttpServerFilter.handleRead(HttpServerFilter.java:189)
    at org.glassfish.grizzly.filterchain.ExecutorResolver$9.execute(ExecutorResolver.java:119)
    at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeFilter(DefaultFilterChain.java:288)
    at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeChainPart(DefaultFilterChain.java:206)
    at org.glassfish.grizzly.filterchain.DefaultFilterChain.execute(DefaultFilterChain.java:136)
    at org.glassfish.grizzly.filterchain.DefaultFilterChain.process(DefaultFilterChain.java:114)
    at org.glassfish.grizzly.ProcessorExecutor.execute(ProcessorExecutor.java:77)
    at org.glassfish.grizzly.nio.transport.TCPNIOTransport.fireIOEvent(TCPNIOTransport.java:838)
    at org.glassfish.grizzly.strategies.AbstractIOStrategy.fireIOEvent(AbstractIOStrategy.java:113)
    at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.run0(WorkerThreadIOStrategy.java:115)
    at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.access$100(WorkerThreadIOStrategy.java:55)
    at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy$WorkerThreadRunnable.run(WorkerThreadIOStrategy.java:135)
    at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:564)
    at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.run(AbstractThreadPool.java:544)
    at java.lang.Thread.run(Thread.java:724)
Caused by: javax.ejb.CreateException: Initialization failed for Singleton Test
    at com.sun.ejb.containers.AbstractSingletonContainer.createSingletonEJB(AbstractSingletonContainer.java:483)
    at com.sun.ejb.containers.AbstractSingletonContainer.access$000(AbstractSingletonContainer.java:81)
    at com.sun.ejb.containers.AbstractSingletonContainer$SingletonContextFactory.create(AbstractSingletonContainer.java:654)
    ... 42 more
Caused by: java.lang.Exception: java.lang.NoClassDefFoundError: javax/persistence/EntityManager
    at com.sun.ejb.containers.interceptors.CallbackInvocationContext.proceed(CallbackInvocationContext.java:209)
    at org.jboss.weld.ejb.AbstractEJBRequestScopeActivationInterceptor.aroundInvoke(AbstractEJBRequestScopeActivationInterceptor.java:55)
    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:606)
    at com.sun.ejb.containers.interceptors.CallbackInterceptor.intercept(InterceptorManager.java:986)
    at com.sun.ejb.containers.interceptors.CallbackChainImpl.invokeNext(CallbackChainImpl.java:72)
    at com.sun.ejb.containers.interceptors.CallbackInvocationContext.proceed(CallbackInvocationContext.java:205)
    at com.sun.ejb.containers.interceptors.SystemInterceptorProxy.doCall(SystemInterceptorProxy.java:163)
    at com.sun.ejb.containers.interceptors.SystemInterceptorProxy.init(SystemInterceptorProxy.java:125)
    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:606)
    at com.sun.ejb.containers.interceptors.CallbackInterceptor.intercept(InterceptorManager.java:986)
    at com.sun.ejb.containers.interceptors.CallbackChainImpl.invokeNext(CallbackChainImpl.java:72)
    at com.sun.ejb.containers.interceptors.InterceptorManager.intercept(InterceptorManager.java:412)
    at com.sun.ejb.containers.interceptors.InterceptorManager.intercept(InterceptorManager.java:375)
    at com.sun.ejb.containers.BaseContainer.intercept(BaseContainer.java:1949)
    at com.sun.ejb.containers.AbstractSingletonContainer.createSingletonEJB(AbstractSingletonContainer.java:475)
    ... 44 more
Caused by: java.lang.NoClassDefFoundError: javax/persistence/EntityManager
    at edu.stevens.cs548.clinic.domain.ProviderDAO.addProvider(ProviderDAO.java:72)
    at edu.stevens.cs548.clinic.test.Test.init(Test.java:66)
    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:606)
    at com.sun.ejb.containers.interceptors.BeanCallbackInterceptor.intercept(InterceptorManager.java:1035)
    at com.sun.ejb.containers.interceptors.CallbackChainImpl.invokeNext(CallbackChainImpl.java:72)
    at com.sun.ejb.containers.interceptors.CallbackInvocationContext.proceed(CallbackInvocationContext.java:205)
    ... 64 more

1 个答案:

答案 0 :(得分:5)

获取javaee.jar文件并将其包含在项目类路径中。

http://mvnrepository.com/artifact/javax/javaee-api

您可以直接从以下链接下载

http://www.java2s.com/Code/Jar/j/Downloadjavaeeapi70jar.htm

javax.persistence.Entity是J2EE SDK库“javaee.jar”中的一个类,您在项目类路径中缺少此jar文件。