tomcat7 JSP 不能用 java 8 做 lambda 表达式

问题描述

我收到以下错误...

An error occurred at line: 23 in the jsp file: /blah/blah/email-option.jsp
Lambda expressions are allowed only at source level 1.8 or above
20:         @SuppressWarnings("Convert2Diamond")
21:         final List<String> emails = Optional
22:           .ofNullable(request.getAttribute("email"))
23:           .map(v -> (List<String>)v)
24:           .orElse(new ArrayList<String>());
25:         @SuppressWarnings("Convert2Diamond")
26:         final List<String> emailConfirms = Optional

这不会发生在我的工作站上。我正在使用 tomcat 7.0.103,并且有以下 web.xml jsp servlet 设置...

  <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>
    <init-param>
      <param-name>compiler</param-name>
      <param-value>modern</param-value>
    </init-param>
    <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>suppressSmap</param-name>
      <param-value>true</param-value>
    </init-param>
    <load-on-startup>3</load-on-startup>
  </servlet>

redhat 7 上的 Tomcat 7.0.76 似乎不喜欢它。有没有办法让它工作?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)