У меня есть веб-приложение, использующее JSP 2.1, Servlets 2.5 и JSTL 1.2 на Java 6. Я без проблем провожу тестирование с помощью maven-jetty-plugin 6.1.1rc1. По этой ссылке: http://docs.codehaus.org/display/JETTY/JSP+2.0+v+JSP+2.1, я понимаю, что причал 6 выберет JSP 2.1, если на JDK 5+, который работает нормально.
Вот соответствующий раздел из моего pom.xml войны приложений:
<!--servlet & javax-->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
<version>2.1</version>
<scope>provided</scope>
</dependency>
Теперь я хотел бы настроить автоматические интеграционные тесты, используя встроенный Cargo и jetty6x. Контейнер запускается нормально, без ошибок. Однако я не могу отображать JSP. Это исключение, которое я получаю, и, насколько я могу судить, это связано с тем, что вместо JSP-2.1 используется реализация JSP-2.0.
(TagLibraryInfoImpl.java:547) - Unknown element (deferred-value) in attribute
и Caused by: java.lang.NoSuchMethodError: javax.servlet.jsp.PageContext.getELContext()Ljavax/el/ELContext;
at org.apache.taglibs.standard.tag.common.core.SetSupport.doEndTag(SetSupport.java:140)
Вот мой конфиг груза:
<plugin>
<groupId>org.codehaus.cargo</groupId>
<artifactId>cargo-maven2-plugin</artifactId>
<version>1.0.1</version>
<configuration>
<container>
<containerId>jetty6x</containerId>
<type>embedded</type>
</container>
<configuration>
<deployables>
<deployable>
<groupId>groupId</groupId>
<artifactId>artifact</artifactId>
<type>war</type>
</deployable>
</deployables>
</configuration>
<wait>${cargo.wait}</wait>
</configuration>
<executions>
<execution>
<id>start-container</id>
<phase>pre-integration-test</phase>
<goals>
<goal>start</goal>
</goals>
</execution>
<execution>
<id>stop-container</id>
<phase>post-integration-test</phase>
<goals>
<goal>stop</goal>
</goals>
</execution>
</executions>
The cargo jetty6x container also uses v6.1.1rc1 of jetty, so it must be something to do with the way cargo is using jetty. I know that cargo hard-codes the versions of its container dependencies instead of using the maven dependency mechanism (probably for good reason, jira ->CARGO-571)
Итак, мой вопрос: кому-нибудь еще удалось использовать JSP 2.1 со встроенными Cargo и Jetty 6x? Есть предложения, как заставить его работать?
Любая помощь высоко ценится!