El módulo GWT puede necesitar ser (re) comstackdo REDUX

Cuando se ejecuta en modo comstackdo obtengo este temido módulo GWT ‘mymodule’ puede necesitar ser (re) comstackdo un mensaje de diálogo.

He comstackdo una lista de las cosas que otros sugirieron probar cuando recibo este mensaje de error de GWT ejecutándose en modo comstackdo. He abierto el archivo WAR creado por maven y todos los archivos están en el lugar correcto. Confirmé esto en contra de otro proyecto de GWT maven que no obtiene este error. Sin embargo, ninguna de las sugerencias a continuación ha corregido el problema. Tampoco he podido identificar la diferencia que falta entre estos dos proyectos: el que funciona y el mío que no se ejecutará en modo comstackdo.

  • ¿El nombre en la página de inicio de html coincide con el módulo?
  • Muchas sugerencias poco convincentes para agregar el parámetro de cadena de consulta gwt.codesrv a la URL. Sin embargo, el punto es ejecutar sin en modo comstackdo. Obviamente, no quiero ejecutar en modo hospedado. Eso funciona. Estoy intentando ejecutar en modo comstackdo en Tomcat.
  • ¿Limpiando el caché del navegador? – no. no ayudó
  • No he sobrepasado la propiedad “user.agent” en mymodule.gwt.xml
  • agregue a la configuración de maven-clean-plugin su directorio de salida eclipse: src / main / webapp / WEB-INF / classes

¿Qué más puedo probar?

¿Has iniciado el DevMode usando tu src/main/webapp como la “carpeta de guerra”? o en otras palabras, ¿hay un *.nocache.js en su src/main/webapp ? En ese caso, este archivo sobrescribirá el producido por el comstackdor GWT como lo llama el gwt-maven-plugin.

El *.nocache.js generado por el DevMode (cuando no existe ninguno, generado por una comstackción GWT anterior) contiene solo los bits necesarios para iniciar el DevMode, y de lo contrario fallará con el error mencionado anteriormente.

Busque un archivo llamado .nocache.js en src/main/webapp/ y elimínelo / cambie el nombre.

Luego haz tu paquete mvn y todo ‘debería’ estar bien.

Este problema puede ocurrir cuando ejecuta el modo Dev en Eclipse. Eclipse generará el archivo nocache.js y lo colocará en el directorio src/main/webapp .

Luego, cuando ejecutas mvn pacakge , el plugin maven crea el despliegue nocache.js y lo coloca en el lugar correcto, pero luego cuando empaqueta archivos en una guerra, entonces da derecho a su implementación nocache.js con el que creó Eclipse – fastidio !

Encontré el mismo problema en DevMode si había un enlace estático a otra página en la aplicación (es decir, myModule2.html). Debido a que carecía de la cadena? Gwt.codesvr = 127.0.0.1: 9997 , se interpretó como una aplicación GWT estática (ya comstackda), que no lo era, arrojando el código de error que usted mencionó.

enter image description here

Por supuesto, la solución no es utilizar enlaces literales codificados, sino dejar que GWT los haga por usted. Espero que ayude a alguien.

ACTUALIZAR:

Este es el código que arroja este error en el archivo estándar GWT * .nocache.js.

 function B() { var b = false; try { var c = Window.location.search; return (c.indexOf("gwt.hosted=") != -1 || (c.indexOf("gwt.codesvr=") != -1 || Window.external && Window.external.gwtOnLoad)) && c.indexOf("gwt.hybrid") == -1 } catch (a) {} B = function () { return b }; return b } // and later, if B() returns false, show recompile error if (!B()) { try { alert(Pb); return; } ... } 

Por lo tanto, para evitar el mensaje del comstackdor

  • no tiene gwt.hybrid en la URL
  • Y NO tiene gwt.hosted =
  • O get.codesvr =
  • O un método Window.external.getOnLoad

Entonces, en el caso de la ventana emergente, algún código del servidor redirigía una url de la sesión de DevMode, pero no agregaba el parámetro “codesvr =”, por lo que se mostraba la advertencia.

¿Has comstackdo la fuente? Este es un paso sorprendentemente no obvio. Si está utilizando eclipse, puede comstackr haciendo clic en el ícono rojo de la caja de herramientas.

mvn gwt:compile ejecutar mvn gwt:compile adicionalmente el mvn clean install package habitual, ya que la comstackción GWT NO forma parte de la fase maven-package-phase. Esto resuelve el molesto error de comstackción de Javascript (re).

Tuve un problema similar. Al mvn clean install en mi proyecto GWT obtuve un archivo de guerra, que al implementarse en tomcat resultó en el mismo “módulo de GWM” puede necesitar ser (re) comstackdo “mensaje de diálogo. También hice todo lo mencionado aquí sin ningún éxito.

Hacer mvn clean install -DskipTests=true hizo el trabajo por mí.
O
Hacer la instalación de mvn clean install sin invocar la URL de prueba generada (similar a esto: http://:53701/mymoduleJUnit.JUnit/junit-standards.html?gwt.codesvr=:53697 )

La fase de prueba, evidentemente, sobrescribió mi *.nocache.js originalmente creado *.nocache.js través de una url de modo de desarrollo de lujo, de este modo, al final me empaquetó un *.nocache.js incorrecto.

Mi modo Dev se configuró correctamente y la solución anterior no funcionó. A continuación, resolvió el problema.

Múltiples pasos:

  1. Actualizar las propiedades del proyecto -> implementación de despliegue utilizando Deploy GWT maven project con eclipse implementa el directorio de webapp en lugar del directorio de destino / proyecto
  2. mvn paquete limpio
  3. mvn gwt: comstackr
  4. En eclipse, haga clic en ‘GWT Compile Project’ -> Advacned -> Remove ‘-war src / main / webapp’ argumento y pulse comstackr.

La salida debería ser así: vincular a target / project-1.0-SNAPSHOT / ModuleName

… y la implementación funciona bien.

Esto podría aplicarse a todas las otras respuestas válidas aquí también: a veces puede necesitar hacer una actualización del navegador de disco / caché (ctrl + F5) después de seguir uno de ellos.