반응형
Tomcat 8.5 버전에서 JSP에 람다식 사용 시 오류가 발생했다.
Tomcat 9.X 버전부터는 컴파일 버전이 1.8이 기본으로 설정되어 있지만,
Tomcat 8.5 버전의 경우 컴파일 버전이 1.7이 기본으로 설정되어 있어서 발생하였다.
람다식 외에도 1.8의 기능을 JSP에서 사용하는 작성하면, 실행되는 시점에 오류가 발생한다.
개발 JVM 버전과 맞추는 것이 좋은 것 같다.
해결 방법
생성한 애플리케이션이 아닌 Tomcat에 존재하는 web.xml 수정
위치: TOMCAT_HOME/conf/web.xml
- 설정 전
<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>
- 설정 후
<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>
#tomcat8.5 #compiler #1.8 #lambda #java18
반응형
'FullStack > 41. WEB.WAS' 카테고리의 다른 글
톰켓 catalinaout 로그 안 쌓는법 (0) | 2022.01.21 |
---|---|
[TOMCAT] 톰캣을 이용한 세션 공유 설정(UDP 대신 TCP) (1) | 2022.01.03 |
[Tomcat] logs 경로 변경 (0) | 2021.02.09 |
[취약점] Apache, Tomcat 불필요한 웹 메서드 허용 (0) | 2020.12.08 |
[TOMCAT] 톰캣을 이용한 세션 공유 설정 (1) | 2020.11.02 |