(o como hacer que el modo hosted se lleve bien con php)
Nota
Este tutorial es centrado en Linux, pero no veo porque no pueda ser aplicado a GWT bajo Windows o OSX. Después de todo, ¡es Java! También es importante notar que esta solución es para hacer que el modo hosted trabaje con una instalación local de php. Si lo que quieres es utilizar APIs populares como Google Maps o Yahoo! Search entonces esto no es para ti. De hecho se puede hacer que funcione pero solamente serviría para modo hosted ya que cuando la aplicación es emplazada, se pierde el contenedor tomcat (donde sucede la magia).
Introducción
GWT incluye en sus propias clases la clase HTTPRequest. Esta clase se utiliza para hacer peticiones HTTP asíncronas al servidor de origen. La clase HTTPRequest tiene 4 métodos estáticos que manejan tanto peticiones GET y POST y todos los 4 métodos regresan false si la petición falla.
El escenario típico del uso de HTTPRequest es comunicarse con una API remota (como Google Maps o Yahoo! Search) o con tus propios scripts del lado del servidor (php, asp, jsp, etc). En cualquier caso, el usar el modo hosted de GWT para hacer llamadas asíncronas NO será algo facil a menos que tu petición sea dirigida al mismo dominio (otro puerto cuenta como un dominio distinto y por lo tanto localhost y localhost:8888 se encuentran en dominios distintos). Para obscurecer el horizonte aún más, el modo hosted de GWT corre un servidor tomcat embebido y por lo tanto si tienes algunos scripts php locales y quieres llamarlos utilizando HTTPRequest va a fallar, ya que el servidor de origen (el servidor que tiene el script que hace la petición) es tomcat corriendo en un puerto distinto de tu servidor php (típicamente apache en el puerto 80).
Yo creo que la solución presentada aquí es la mejor opción de entre otras alternativas, dado que solo modifica el servidor tomcat embebido en GWT y no el servidor que mantiene los scripts o el servidor de emplazamiento. Además, también es posible hacerlo sin la necesidad de modificar la URL pedida. Pero suficiente teoría, pasemos al código.
Leer el resto de este post.