java - webapp和tomcat之间的Java版本不匹配
问题描述
我在 Eclipse 中编写了一个 webapp,部署在 Tomcat 8 中。该 webapp 包含一个电子邮件实用程序,用户可以通过该实用程序提交从网络服务器通过电子邮件发送给我的联系信息。
当我在 Eclipse 中运行 webapp(使用本地主机上的 Tomcat 实例)时,它可以工作。
我已将 webapp 部署到服务器,它似乎工作正常,直到我尝试发送联系信息。
当我单击调用 servlet 的表单中的提交按钮时,我得到了这个异常:
java.lang.UnsupportedClassVersionError: com/electraink/rental/servlets/ContactInfo has been compiled by a more recent version of the Java Runtime (class file version 53.0), this version of the Java Runtime only recognizes class file versions up to 52.0 (unable to load class com.electraink.rental.servlets.ContactInfo)
org.apache.catalina.loader.WebappClassLoaderBase.findClassInternal(WebappClassLoaderBase.java:2500)
org.apache.catalina.loader.WebappClassLoaderBase.findClass(WebappClassLoaderBase.java:860)
org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1302)
org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1167)
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:490)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:616)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:518)
org.apache.coyote.ajp.AbstractAjpProcessor.process(AbstractAjpProcessor.java:844)
org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:673)
org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1500)
org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1456)
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
java.lang.Thread.run(Thread.java:745)
不知道哪里不对劲。运行 Tomcat8 实例的服务器显示此版本的 Java:
[root@web1 downloads]# java -version
java version "1.8.0_66"
Java(TM) SE Runtime Environment (build 1.8.0_66-b17)
Java HotSpot(TM) 64-Bit Server VM (build 25.66-b17, mixed mode)
Eclipse 项目使用jdk-1.8.0_45.
在我看来,Tomcat 使用的 JVM 比构建 webapp 的 JVM 新,而不是旧。
哪里不对劲了?我需要更新哪个 Java,更新到什么?(我最初在 Eclipse 中构建 webapp 时使用 Java 9,直到我看到这个错误,然后我降级到 Java 8)。
谢谢,杰瑞
解决方案
推荐阅读
- java - 原始 java 代码在 Spark 中究竟执行在哪里?
- security - 如果任何其他所有者授予所有者访问 GCP 中其他一些帐户的权限,我会收到通知吗?
- azure - 如何将 Twillio Voice 与 Azure Bot Service 连接?
- python - 从python中的列表中提取数据
- javascript - NodeJS定时器异步而不停止代码并且不使用setInterval
- oracle - 如何检查oracle数据库中的存储过程是否更新了列或表
- ios - 将我的备忘录背景保持为白色,主题为深色
- go - 使用 go 模板读取和解析文件
- angular - matDatepicker 在页面底部而不是在文本框旁边打开日历
- r - 编写自定义包装器时如何在 dplyr::summarise() 中允许可选的汇总计算