GWT+Jetty JSP 编译器问题的解决方法?(无法识别 Java 1.5 源代码级别)

2022-09-02 01:55:36

正如这个线程所显示的,使用新的Jetty服务器在GWT托管模式下编译JSP似乎存在问题:

2. ERROR in /tmp/Jetty_0_0_0_0_8080_war____ut4fm1/jsp/org/apache/jsp/ 
test_jsp.java (at line 53) 
        new java.util.ArrayList<String>(); 
                                ^^^^^^ 
Syntax error, parameterized types are only available if source level 
is 1.5 

有人有解决方法吗?此提交可能与此相关。我不知道在 Eclipse 之外构建应该使用什么等效物(例如在命令行上)。对于我们采用GWT 1.6来说,这是一个真正的障碍,所以任何指针都受到高度赞赏。org.eclipse.jdt.core.JDTCompilerAdapter


答案 1

此问题是由 JspServlet 使用的缺省值生成的,JspServlet 使用 1.4 对源/目标值进行编译。

  1. 您可以通过添加

    <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.5</param-value>
        </init-param>
        <init-param>
            <param-name>compilerTargetVM</param-name>
            <param-value>1.5</param-value>
        </init-param>
        <load-on-startup>3</load-on-startup>
    </servlet>
    
  2. 还有一个问题,因为你不能用当前的 jasper-compiler-5.0.28 配置 JspServlet。您应该下载 jasper-compiler-5.0.30,并确保在 gwt 之前位于类路径中。还有其他最新的jasper编译器jars,但我并不觉得与jakarta-tomcat-5.0.28的兼容性有多高。我通过在GWT 1.6.4中添加对jakarta-tomcat-5.0.30的依赖关系来解决这个问题。您可以从 http://raisercostin.googlecode.com/files/gwt-windows-1.6.4.raisercostin.zip 下载使用此依赖项编译的 GWT

我也在 http://code.google.com/p/raisercostin/wiki/GwtEclipsePluginDebug 描述了解决方案。


答案 2