java - 如何选择合适的 JDK JavaEE Spring 版本

标签 java tomcat jakarta-ee

一般我会在我的项目中使用以下框架:Spring MVC + Hibernate with Tomcat as container。

而且我从不关心版本,越晚越好。

这是项目中具体的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 部署到 Java EE 服务器(仅支持 JavaEE 5)时遇到一些问题。

我得到的一个错误是这样的:

java.lang.NoSuchMethodError: javax.persistence.Table.indexes()

看来indexes是JPA2.1中的新方法(JavaEE 7支持),而Java EE服务器没有提供。

但是如图所示,hibernate依赖org.hibernate.javax.persistence >> hibernate-jpa-2.1-api >> 1.0.0.Final提供方法,为什么Java EE Server可以不用那个?

为了解决这个问题,对于一个给定的 JavaEE Server 说它只支持 JavaEE 5,在选择 JDK、框架时应该考虑什么?

最佳答案

JPA 2.1 适用于 JavaEE7 和 Java 7 以上版本。

对于 JavaEE 与 JDK 版本的兼容性,我会看一下这个 previous StackOverflow question .

关于java - 如何选择合适的 JDK JavaEE Spring 版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30949624/

相关文章:

java - 使用服务器IP从不同机器访问Java Web App

java - 无需 Maven 配置文件即可工作,有错误

java - Tomcat v9.0 服务器在 Eclipse 中启动错误

image - CMYKJPEGImageReaderSpi 未加载

java - 关闭用于在 Java/Tomcat 中写入的 HTTP session

java - 如何从 java web 项目向 Restful 服务发送参数

java - 了解 Java 中的链表

java - 如何在java上处理非常大的数字的计算?

java - Libgdx 在两次鼠标点击之间绘制线条

Java - 下载器、启动器和更新器