Rest Webservice (java 8) 部署在 Tomcat (java 7) 上的兼容性问题



我在Windows机器上使用Tomcat Server创建了一个Restful Webservice(在Java 8上编译和运行(。我已经在 Ubuntu 系统上部署了它,它现在工作正常,直到我将 Ubuntu 系统的路径设置为 JDK 8 Java_Home。 通过以下链接后 servlet init exception run jersey servlet on tomcat 7

但是当我的路径是JDK 7或低于JDK 8的版本时,战争曾经抛出以下异常:

类型异常报告

消息Servlet.init(( for servlet Jersey Web Application 抛出异常

说明服务器遇到内部错误,阻止它满足此请求。

exceptionjavax.servlet.ServletException: Servlet.init(( for servlet Jersey Web Application 抛出异常

根本原因java.lang.UnsupportedClassVersionError: com/cms/RegisterVehicle/Registration/VehicleResource : unsupport major.minor version 52.0

我想知道为什么 JDK 8 上的 War 与 JDK 7 的服务器不兼容?

这是因为 Java 运行时被编写为仅运行编译为等于或更早于其自身版本的代码。这是因为较旧的 VM 不知道该语言的新功能,或者可能无法理解新版本中引入的任何新字节码。

要解决您的问题,您需要使用 Java 7 编译代码或升级用于运行 Tomcat 的 VM 版本。

最新更新