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

Geo*_*old 22 java eclipse gwt jsp

正如这个线程所示,使用新的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 
Run Code Online (Sandbox Code Playgroud)

有没有人有解决方法?这可能是因为这个承诺有亲缘关系.我不知道org.eclipse.jdt.core.JDTCompilerAdapter在Eclipse之外构建应该使用的等价物(例如在命令行上).对于我们采用GWT 1.6来说,这是一个真正的阻止,因此任何指针都受到高度赞赏.

rai*_*tin 15

此问题由JspServlet使用的默认值生成,该默认值使用1.4编译源/目标值.

  1. 您可以通过添加来配置此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.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>
    
    Run Code Online (Sandbox Code Playgroud)
  2. 还有一个问题,因为您无法使用当前的jasper-compiler-5.0.28配置JspServlet.您应该下载jasper-compiler-5.0.30并确保在gwt之前的类路径中.还有其他最新的jasper编译器罐子,但我并不觉得与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上也介绍了该解决方案 .