2011-11-24 20 views
7

En mi proyecto GWT ejecutándose en glassfishv3, todo funciona correctamente, pero cuando cambio mi asignación de patrones de URL de servlet de web.xml a la anotación @WebServlet dentro de las clases de servlet, ¡GWT rpc cand encuentra el servlet!Anotación de @WebServlet y GWT RPC

tenga en cuenta que, otros servlets habituales funcionan con esta anotación (WebServlet) y simplemente GWT RPC no funciona.

¿cuál es el motivo?

RGDS

+0

tenga en cuenta que otros Servlets habituales funcionan correctamente con esta anotación y solo GWT RPC tienen el problema – Nav

+0

¿Alguna vez recibió una respuesta al respecto? – icfantv

Respuesta

6

¿Ha definido el número de versión de web-app en el web.xml para la versión de servlet correcto, ya que esta función sólo está disponible desde 3,0:

<web-app xmlns="http://java.sun.com/xml/ns/javaee" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" 
     version="3.0"> 
+0

sí, es la versión 3, y otros servlets trabajan con este tipo de mapeo (@WebServlet) pero GWT remoteServiceServlet no funciona – Nav

4

Ok, finalmente conseguí este trabajando pero con algunas advertencias. Pude hacerlo funcionar en Tomcat dentro de Intellij y como WAR desplegado en un contenedor Tomcat 7.

No pude hacerlo funcionar en dev-mode sin usar -noserver. Creo que esto se debe a que el servidor Jetty incorporado no es compatible con JSR315, pero no tiene pruebas de esto, ya que no he intentado determinar qué versión de embarcadero hay en el contenedor gwt-dev.

El truco es que necesita calificar completamente la ruta en WebServlet. Entonces, si su interfaz de servicio remoto tiene la ruta relativa de "barra" y su nombre de módulo (cambiar el nombre-a en gwt.xml) es "foo", entonces la ruta que necesita para establecer la ruta de "/ foo/barra" en WebServlet y funcionará.

+0

Sé que esto es antiguo, pero aquí hay un error directamente relacionado con las anotaciones de Servlet 3.0 para trabajar con el Jetty incrustado servidor; https://code.google.com/p/google-web-toolkit/issues/detail?id=8472 – Jonathan