El módulo GWT puede necesitar ser(re) compilado REDUX
maven (8)
¿Has compilado la fuente? Este es un paso sorprendentemente no obvio. Si está utilizando eclipse, puede compilar haciendo clic en el ícono rojo de la caja de herramientas.
Cuando se ejecuta en modo compilado obtengo este temido módulo GWT ''mymodule'' puede necesitar ser (re) compilado un mensaje de diálogo.
He compilado una lista de las cosas que otros sugirieron probar cuando recibo este mensaje de error de GWT ejecutándose en modo compilado. 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 compilado.
- ¿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 compilado. Obviamente, no quiero ejecutar en modo hospedado. Eso funciona. Estoy intentando ejecutar en modo compilado 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?
Busque un archivo llamado <MODULE_NAME>.nocache.js
en src/main/webapp/<MODULE_NAME>
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 compilada), que no lo era, arrojando el código de error que usted mencionó.
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 compilador
- 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.
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.
Mi modo Dev se configuró correctamente y la solución anterior no funcionó. A continuación, resolvió el problema.
Múltiples pasos:
- 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
- mvn paquete limpio
- mvn gwt: compilar
- En eclipse, haga clic en ''GWT Compile Project'' -> Advacned -> Remove ''-war src / main / webapp'' argumento y pulse compilar.
La salida debería ser así: vincular a target / project-1.0-SNAPSHOT / ModuleName
... y la implementación funciona bien.
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) compilado "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://<localIp>:53701/mymoduleJUnit.JUnit/junit-standards.html?gwt.codesvr=<localIp>: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.
¿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 compilador GWT como lo llama el gwt-maven-plugin.
El *.nocache.js
generado por el DevMode (cuando no existe ninguno, generado por una compilación GWT anterior) contiene solo los bits necesarios para iniciar el DevMode, y de lo contrario fallará con el error mencionado anteriormente.
mvn gwt:compile
ejecutar mvn gwt:compile
adicionalmente el mvn clean install package
habitual, ya que la compilación GWT NO forma parte de la fase maven-package-phase. Esto resuelve el molesto error de compilación de Javascript (re).