在TomEE上运行我的Java EE应用程序时出现以下错误:
java.lang.NoClassDefFoundError:javax / persistence / NamedStoredProcedureQuery
构建app时没有编译时错误。我在Eclipse中开发并在项目属性中的目标运行时下选择 Apache TomEE ,以便project可以访问Java EE。
由于项目使用Hibernate,我在WEB-INF \ lib目录中有以下jar(我的理解是这些jar依次使用javax.persistence):
我见过很多像this one这样的问题,详细说明解决方案是将所需的JPA jar添加到应用程序的lib目录中,一切都会好的。但是虽然这个解决方案可能会起作用,但这对我来说听起来很糟糕,我希望TomEE能够自己管理JPA库。它是一个Java EE服务器,为什么不这样做呢。什么是干净的解决方案?
答案 0 :(得分:3)
@JB Nizet 的答案是公认的解决方案:
此类自JPA 2.1起存在。我想你的TomEE版本 支持JPA 2.0。事实上,TomEE的主页上写道:“Java EE 6 Web Profile“.Java EE 6包括JPA 2.0,而不是2.1。 - JB Nizet