Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/379.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/rust/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javax.persistence在TomEE中不可用_Java_Hibernate_Jpa_Persistence_Classnotfoundexception - Fatal编程技术网

Javax.persistence在TomEE中不可用

Javax.persistence在TomEE中不可用,java,hibernate,jpa,persistence,classnotfoundexception,Java,Hibernate,Jpa,Persistence,Classnotfoundexception,在TomEE上运行Java EE应用程序时,出现以下错误: NoClassDefFoundError:javax/persistence/namedStoredProcess 构建应用程序时没有编译时错误。我在Eclipse中开发,并在项目属性中的目标运行时下选择Apache TomEE,以便项目可以访问Java EE 由于项目使用Hibernate,我在WEB-INF\lib目录中有以下JAR(据我所知,这些JAR反过来使用javax.persistence): hibernate-comm

在TomEE上运行Java EE应用程序时,出现以下错误:

NoClassDefFoundError:javax/persistence/namedStoredProcess

构建应用程序时没有编译时错误。我在Eclipse中开发,并在项目属性中的目标运行时下选择Apache TomEE,以便项目可以访问Java EE

由于项目使用Hibernate,我在WEB-INF\lib目录中有以下JAR(据我所知,这些JAR反过来使用javax.persistence):

  • hibernate-commons-annotations-4.0.4
  • hibernate-core-4.3.5
  • hibernate-jpa-2.1

我已经看到了很多问题,比如详细说明解决方案是将所需的JPA jar添加到应用程序的lib目录中,一切都会很好。但是,尽管这个解决方案可能有效,但对我来说,它听起来很粗糙,我想让我自己管理JPA库。它是一个JavaEE服务器,为什么不这样做呢。什么是清洁的解决方案?

@JB Nizet的答案是公认的解决方案:


该类自JPA2.1以来就存在。我想只有你的书版本 支持JPA2.0。事实上,TomEE的主页上写着:“JavaEE6 网页简介”。Java EE 6包括JPA 2.0,而不是2.1吉卜赛特


该类自JPA2.1以来就存在。我想你的TomEE版本只支持JPA2.0。事实上,TomEE的主页上写着:“JavaEE6WebProfile”。JavaEE6包括JPA2.0,而不是2.1。我有一个类似的设置,我在TOMEE引导上有一个警告:。。。WARN-jar'//WEB-INF/lib/hibernate-jpa-2.1-api-1.0.0.Final.jar'包含有问题的类:javax.persistence.Entity。它将被忽略。有没有办法克服这个问题?切换到TOMEE-2.0.0.SNAPSHOT maybe?@Continuity8-我觉得通过将jar放入生产环境中来解决这个问题也有点不妥。此外,它在开发人员设置中不起作用,其中maven用于集成测试,例如…:-/有人有“干净方式”的想法吗?你必须自己添加jar,或者使用默认支持JPA2.1的容器。谢谢,我已经将hibernate版本更改为4.2,它与JPA2.0兼容。谢谢你和@JB(T)