gwt jetty spring-roo sts-springsourcetoolsuite

GWT+JSTL en modo de desarrollo: ¿es posible?



jetty spring-roo (1)

Tengo una aplicación GWT (generada por roo) que he decidido proteger con Spring Security. Roo genera una página login.jspx como parte de la configuración de seguridad y esta jspx usa algunos taglibs JSTL básicos.

Cuando se ejecuta en modo de desarrollo, al servidor Jetty subyacente aparentemente no le gusta esto. Con las siguientes dependencias de Maven

<dependency> <groupId>javax.servlet.jsp.jstl</groupId> <artifactId>jstl-api</artifactId> <version>1.2</version> <classifier/> </dependency> <dependency> <groupId>org.glassfish.web</groupId> <artifactId>jstl-impl</artifactId> <version>1.2</version> <classifier/> </dependency>

yo obtengo

java.lang.AbstractMethodError: javax.servlet.jsp.PageContext.getELContext()Ljavax/el/ELContext;

Supongo que la dependencia jstl-impl estaba en conflicto con una ya proporcionada por el contenedor web, pero cuando cambio su alcance a la proporcionada, obtengo:

org.apache.jasper.JasperException: /WEB-INF/views/login.jspx(22,69) The attribute prefix fn does not correspond to any imported tag library

¿Alguien consiguió esto para trabajar con éxito?

PD. Oigo rumores de que solo puedes exportar la aplicación a Tomcat, y funciona bien, pero la compilación de GWT puede ser una operación que consume mucho tiempo, por lo que sería genial hacerlo funcionar en modo dev.


Evidentemente, el servidor Jetty que sustenta el modo de desarrollo GWT tiene JSTL 1.1 ya en el classpath en alguna parte. Si cambia las dependencias Maven que Roo agrega de forma predeterminada

<dependency> <groupId>javax.servlet.jsp.jstl</groupId> <artifactId>jstl-api</artifactId> <version>1.2</version> <classifier/> </dependency> <dependency> <groupId>org.glassfish.web</groupId> <artifactId>jstl-impl</artifactId> <version>1.2</version> <classifier/> </dependency>

a

<dependency> <groupId>javax.servlet</groupId> <artifactId>jstl</artifactId> <version>1.1.1</version> <classifier/> </dependency> <dependency> <groupId>taglibs</groupId> <artifactId>standard</artifactId> <version>1.1.1</version> </dependency>

¡tendrás un entorno GWT + JSTL en funcionamiento!