亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Tomcat 使用 Java 8 SDK 但不會編譯具有 Java 8 語言功能的 JSP。

Tomcat 使用 Java 8 SDK 但不會編譯具有 Java 8 語言功能的 JSP。

拉風的咖菲貓 2023-02-23 14:30:02
我想我正在查看當前問題的 Tomcat 配置問題。我正在為 Tomcat 8.5.8 開發 Java Servlet 和 JSP 應用程序,并且已經開始使用 Java 8 語言功能(特別是方法引用和流)。在我運行 jdk1.8.0_211 的本地機器上,新代碼可以正常工作,在運行時按預期方式編譯 JSP。在我們的測試服務器 (RH Linux) 上,新的 JSP 無法編譯(但應用程序的其余部分可以運行)。錯誤是org.apache.jasper.JasperException: Unable to compile class for JSP: An error occurred at line: 135 in the jsp file: /jsp/directory/page.jspMethod references are allowed only at source level 1.8 or above我自己沒有設置服務器,但它運行了一些 Java 8 版本,并且具有相同的 Tomcat 版本(8.5.8),所以我懷疑某處有一個配置文件告訴它以舊語言編譯 JSP等級。(證據是它知道方法引用是什么但拒絕編譯它;一個異常而不是一個錯誤。)告訴 Tomcat 在舊語言級別編譯 JSP 的配置可能隱藏在哪里?
查看完整描述

2 回答

?
白豬掌柜的

TA貢獻1893條經驗 獲得超10個贊

根據https://tomcat.apache.org/tomcat-8.0-doc/jasper-howto.html,

實現 Jasper 的 servlet 使用全局 $CATALINA_BASE/conf/web.xml 中的初始化參數進行配置。

compilerSourceVM - 源文件與哪個 JDK 版本兼容?(默認值:1.7) compilerTargetVM - 生成的文件與哪個 JDK 版本兼容?(默認值:1.7)

舉個例子,如果你的web.xml文件包含如下代碼,它會將JSP編譯到1.8語言級別:

<servlet>
    <servlet-name>jsp</servlet-name>
    <servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class>

    <init-param>
        <param-name>compilerSourceVM</param-name>
        <param-value>1.8</param-value>
    </init-param>
    <init-param>
        <param-name>compilerTargetVM</param-name>
        <param-value>1.8</param-value>
    </init-param>

    <init-param>
        <param-name>fork</param-name>
        <param-value>false</param-value>
    </init-param>
    <init-param>
        <param-name>xpoweredBy</param-name>
        <param-value>false</param-value>
    </init-param>
    <load-on-startup>3</load-on-startup>
</servlet>


查看完整回答
反對 回復 2023-02-23
?
縹緲止盈

TA貢獻2041條經驗 獲得超4個贊

我在使用 JDK1.8 和 Tomcat9.0 時遇到了這個問題,并瀏覽了所有谷歌。

我的解決辦法:重裝Tomcat9,非常非常清楚,Start Ok!

Tomcat 中的某些東西崩潰了,我們不知道?。?!


查看完整回答
反對 回復 2023-02-23
  • 2 回答
  • 0 關注
  • 157 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號