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