我想我目前的问题是Tomcat配置问题。我正在为Tomcat 8.5.8开发一个Java Servlet和JSP应用程序,并且已经开始使用Java 8语言特性(特别是方法引用和流)。在我运行jdk1.8.0_211的本地机器上,新代码可以正常工作,在运行时编译JSP。
在我们的测试服务器(RHLinux)上,新的JSP无法编译(但是应用程序的其余部分可以工作)。
org.apache.jasper.JasperException: Unable to compile class for JSP:
An error occurred at line: 135 in the jsp file: /jsp/directory/page.jsp
Method references are allowed only at source level 1.8 or above
我没有自己设置服务器,但是它运行一些Java8版本,并且具有相同的Tomcat版本(8.5.8),所以我怀疑在某处存在一个配置文件,该文件告诉它在较旧的语言级别编译JSP。(证据是它 * 知道Method引用是什么 *,但是拒绝编译它;异常而不是错误。)
告诉Tomcat在较旧的语言级别编译JSP的配置可能隐藏在哪里?
2条答案
按热度按时间kqqjbcuj1#
根据https://tomcat.apache.org/tomcat-8.0-doc/jasper-howto.html,
实现碧玉的servlet是使用全局$ Catalina _BASE/conf/web.xml中的init参数配置的。
compilerSourceVM -源文件与哪个JDK版本兼容?(默认值:1.7)compilerTargetVM -生成的文件与哪个JDK版本兼容?(默认值:1.7)
给予个例子,如果您的
web.xml
文件包含以下代码,它将把JSP编译到1.8语言级别:6l7fqoea2#
我在JDK1.8和Tomcat9.0上遇到了这个问题,浏览了谷歌的所有内容。
我的解决方案:重新安装Tomcat9,非常非常清楚,并开始确定!
Tomcat中的一些东西崩溃了,我们不知道!!!