一尘不染

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

jsp

该线程所示,使用新的Jetty服务器使JSP在GWT托管模式下进行编译似乎存在问题:

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

有人有解决方法吗?这可能是因为这个承诺有亲缘关系。我不知道org.eclipse.jdt.core.JDTCompilerAdapter应该在Eclipse外部(例如在命令行上)使用什么等效项。对于我们采用GWT
1.6而言,这是一个真正的阻碍因素,因此任何指针都将受到高度赞赏。


阅读 241

收藏
2020-06-08

共1个答案

一尘不染

此问题是由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>
    

  2. 还有一个问题,因为您无法使用当前的jasper-compiler-5.0.28配置JspServlet。您应该下载jasper-compiler-5.0.30并确保gwt之前在您的类路径中。还有其他最新的jasper编译器jar,但我对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中描述了该解决方案

2020-06-08