我在Windows机器上使用Tomcat Server创建了Restful Webservice(在Java 8上编译并运行)。我已经在Ubuntu系统上部署它,它现在工作正常,直到我将Ubuntu系统的Java_Home路径设置为JDK 8。 通过以下链接后 servlet init exception running jersey servlet on tomcat 7
但是当我的路径是JDK 7或JDK 8以下的版本时,战争过去抛出异常:
型 例外报告
用于servlet的消息 Servlet.init()泽西Web应用程序抛出异常
description 服务器遇到内部错误,无法完成此请求。
例外 javax.servlet.ServletException:servlet的Servlet.init()Jersey Web应用程序抛出异常
根本原因 java.lang.UnsupportedClassVersionError:com / cms / RegisterVehicle / Registration / VehicleResource:不支持的major.minor版本52.0
我想知道为什么War在JDK 8上的编译与JDK 7的服务器不兼容?
答案 0 :(得分:1)
这是因为Java运行时被编写为仅运行编译为与其自身版本相同或更早的版本的代码。这是因为较旧的VM不会了解该语言的新功能,或者可能无法理解新版本中引入的任何新字节码。
要解决您的问题,您需要使用Java 7编译代码或升级用于运行Tomcat的VM版本。