如该线程所示,使用新的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而言,这是一个真正的阻碍因素,因此任何指针都将受到高度赞赏。
org.eclipse.jdt.core.JDTCompilerAdapter
此问题是由JspServlet使用的默认值生成的,该默认值使用1.4作为源/目标值进行编译。
您可以通过添加以下内容来配置该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>
还有一个问题,因为您无法使用当前的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中描述了该解决方案 。