使用されるTomcatのバージョンによると、Tomcatが提供するJSPエンジンは、特定のデフォルトバージョンのJavaを使用してJSPをコンパイルして実行します。
Tomcat 7は1.6バージョン
compilerSourceVMを使用しています - どのようなJDKのバージョンはと 互換性のあるソースファイルがありますか? (デフォルト値:1.6)
compilerTargetVM - 生成されたファイルはどのJDKバージョンに対応していますか? には? (デフォルト値:1.6)
Tomcat 8は1.7バージョン
compilerSourceVMを使用しています - どのようなJDKのバージョンはと 互換性のあるソースファイルがありますか? (デフォルト値:1.7)
compilerTargetVM - 生成されたファイルはどのJDKバージョンに対応していますか? は? (デフォルト値:1。JDKのバージョンがと 互換性のあるソースファイルとは何 - 7)
Tomcat 9は1.8バージョン
compilerSourceVMを使用していますか? (デフォルト値:1.8)
compilerTargetVM - 生成されたファイルはどのJDKバージョンに対応していますか? には? (デフォルト値:1.8)
もちろん、デフォルト値が要件に一致しない場合は、使用するバージョンを変更することができます。
はあなたのグローバル$CATALINA_BASE/conf/web.xml
で 宣言 org.apache.jasper.servlet.JspServlet
サーブレットの初期化パラメータを変更していることを行うことができます。
<servlet>
<servlet-name>jsp</servlet-name>
<servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class>
<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>
...
たとえば、両方のJSPファイルのソースとターゲットとして、あなたはこの中で、それを変更する必要があり1.8
バージョンを指定するには:
は、例えばTomcatの8分布のweb.xml
は、この方法でのJspServletを定義しました方法:
...
<servlet>
<servlet-name>jsp</servlet-name>
<servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class>
<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>
<!-- added params -->
<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>
<!-- end added params -->
<load-on-startup>3</load-on-startup>
</servlet>
...
素晴らしい。 最終的にTomcat 7にアップグレードすることができましたが、あなたのソリューションがそのトリックを済ませたように見えます。 –
これをアプリケーションの 'web.inf'に追加することもできます。 –