Estoy teniendo este problema con GWT cuando está detrás de un proxy inverso. La aplicación de back-end se implementa dentro de un contexto, vamos a llamarlo/contexto.Problema con GWT detrás de un proxy inverso, ya sea nginx o apache
La aplicación GWT funciona bien cuando golpeo directamente:
puedo configurar un proxy inverso frente a ella misma. Aquí está mi ejemplo nginx:
upstream backend { server 127.0.0.1:8080; } ... location/{ proxy_pass http://backend/context/; }
Pero, cuando corro a través del proxy inverso, GWT se confunde, diciendo:
2009-10-04 14:05:41.140:/:WARN: Login: ERROR: The serialization policy file '/C7F5ECA5E3C10B453290DE47D3BE0F0E.gwt.rpc' was not found; did you forget to include it in this deployment? 2009-10-04 14:05:41.140:/:WARN: Login: WARNING: Failed to get the SerializationPolicy 'C7F5ECA5E3C10B453290DE47D3BE0F0E' for module 'https://hostname:444/'; a legacy, 1.3.3 compatible, serialization policy will be used. You may experience SerializationExceptions as a result. 2009-10-04 14:05:41.292:/:WARN: StoryService: ERROR: The serialization policy file '/0445C2D48AEF2FB8CB70C4D4A7849D88.gwt.rpc' was not found; did you forget to include it in this deployment? 2009-10-04 14:05:41.292:/:WARN: StoryService: WARNING: Failed to get the SerializationPolicy '0445C2D48AEF2FB8CB70C4D4A7849D88' for module 'https://hostname:444/'; a legacy, 1.3.3 compatible, serialization policy will be used. You may experience SerializationExceptions as a result.
En otras palabras, GWT no está recibiendo la palabra que necesita prepend/context/hen busca C7F5ECA5E3C10B453290DE47D3BE0F0E.gwt.rpc, pero solo cuando la solicitud viene a través del proxy. Una solución es agregar el contexto de la URL del sitio web:
location /context/ { proxy_pass http://backend/context/; }
pero eso significa que el contexto es ahora parte de la URL que el usuario ve, y eso es feo.
¿Alguien sabe cómo hacer feliz a GWT en este caso?
versiones de software:
GWT - 1.7.0 (mismo problema con 1.7.1)
Jetty - 6.1.21 (pero el mismo problema existía bajo Tomcat)
nginx - 0.7.62 (mismo problema bajo Apache 2.x)
He visto el tráfico entre el proxy y el backend usando DonsProxy, pero no hay nada digno de mención allí.
No necesito necesariamente separar cosas en el corto plazo, pero el creador de aplicaciones establece los módulos con un contexto de forma predeterminada, y es posible que desee separar ciertas piezas en otros módulos. El parche de la fuente (a GWT) suena como la respuesta correcta, ya que parece que todo está configurado correctamente. –
De la forma en que lo veo, tienes un problema complicado, y es probable que otras personas se beneficien de tu solución, por lo que un parche sería extremadamente valioso. Si sigue esta ruta, asegúrese de poner su archivo de parche en Gist (http://gist.github.com/) o similar, y vincule esta pregunta, en caso de que no se acepte el parche inmediatamente. –