如何选择正确的JDK JavaEE Spring版本

如何选择正确的JDK JavaEE Spring版本,java,tomcat,jakarta-ee,Java,Tomcat,Jakarta Ee,通常我会在我的项目中使用以下框架:SpringMVC+Hibernate,Tomcat作为容器 我从不在乎版本,越晚越好 这是项目中的具体SDK框架版本: JDK 1.7 Spring Framework: spring-webmvc >> 4.1.6.RELEASE Hibernate: hibernate-entitymanager >> 4.3.10.Final org.hibernate.javax.persistence >

通常我会在我的项目中使用以下框架:SpringMVC+Hibernate,Tomcat作为容器

我从不在乎版本,越晚越好

这是项目中的具体SDK框架版本:

JDK 1.7
Spring Framework:
    spring-webmvc >> 4.1.6.RELEASE
Hibernate:
    hibernate-entitymanager >> 4.3.10.Final
        org.hibernate.javax.persistence >> hibernate-jpa-2.1-api >> 1.0.0.Final
Tomcat 7
应用程序在tomcat下运行良好,但是当我将应用程序从tomcat部署到JavaEE服务器(仅支持JavaEE5)时,我遇到了一些问题

我得到的一个错误是:

java.lang.NoSuchMethodError: javax.persistence.Table.indexes()
似乎
索引
是JPA2.1(JavaEE7支持)中的一种新方法,而JavaEE服务器不提供它

但是如图所示,hibernate依赖项
org.hibernate.javax.persistence>>hibernate-jpa-2.1-api>>1.0.0.Final
提供了方法,为什么JavaEE服务器不能使用它


为了解决这个问题,对于一个给定的JavaEE服务器来说,如果它只支持JavaEE5,那么在选择JDK、框架时应该考虑什么呢?

JPA2.1适用于JavaEE7和Java7以后的版本


对于JavaEE与JDK版本的兼容性,我将看一看。

JavaEE7被指定与Java7兼容,因此扩展为JPA2.1。