обходной путь для проблемы с компилятором GWT+Jetty JSP?(Исходный уровень Java 1.5 не распознается)
Вопрос
Как эта тема показывает, что, похоже, существует проблема с компиляцией JSP в режиме размещения GWT с новым сервером Jetty:
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, поэтому любые указания будут очень признательны.
Решение
Эта проблема возникает из-за значений по умолчанию, используемых JspServlet, который компилируется с использованием версии 1.4 для исходных/целевых значений.
Вы можете настроить этот сервлет, добавив
<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>
- Есть еще одна проблема: вы не можете настроить JspServlet с текущей версией jasper-compiler-5.0.28.Вам следует скачать Джаспер-компилятор-5.0.30 и убедитесь, что он находится в вашем пути к классам перед gwt.Существуют и другие новейшие банки компилятора jasper, но меня не беспокоит их совместимость с jakarta-tomcat-5.0.28.
Я решил эту проблему, добавив зависимость от jakarta-tomcat-5.0.30 в GWT 1.6.4.Вы можете загрузить GWT, скомпилированный с этой зависимостью, с сайта http://raisercostin.googlecode.com/files/gwt-windows-1.6.4.raisercostin.zip
Я описал решение на http://code.google.com/p/raisercostin/wiki/GwtEclipsePluginDebug слишком.