2010-04-20 15 views
15

Actualmente estoy teniendo un problema con 'hot code replace' que no funciona en Eclipse Galileo y JBoss 4.2.3.'Hot code replace' no funciona - Eclipse no cambia ningún código en JBoss

Entre otras aplicaciones estoy ejecutando un WAR de guerra explotado en mi JBoss local. El proyecto desde el cual se construye es administrado por Maven. Construyo el proyecto usando la guerra de objetivos de Maven: explotado y luego copio ese directorio a JBoss con un script ANT.

Cuando estoy ejecutando la aplicación y establezco un punto de interrupción en cualquier parte del código, Eclipse se detiene correctamente en esa línea en el modo de depuración. Pero cuando realizo un cambio en el archivo fuente y lo guardo, Eclipse no aplica este cambio al JBoss. Por ejemplo, cuando hago una línea de código normal en un comentario, el depurador sigue dando pasos sobre este comentario como si fuera código Java normal. O cuando elimino una línea, el depurador parece desincronizarse con el archivo y comienza a pasar entre paréntesis.

Pero tampoco recibo ningún 'mensaje de reemplazo de código caliente'. Me parece que Eclipse aplica los cambios a los archivos fuente, pero no los aplica a JBoss.

¿Hay alguna preferencia especial que deba activarse para que el cambio de código funcione? ¿O hay algún error en la forma en que construyo y despliegue la aplicación en JBoss?

Le agradecería mucho su ayuda.

Gracias. Bernhard V

Respuesta

38

No trabajé con JBoss pero tengo dos sugerencias.

1) Si ejecuta su aplicación en Eclipse mediante la configuración de lanzamiento

es su "Proyecto" - "Construir automáticamente" indicador de habilitación? Si no, el código no se compila e ignora t runtime.

2) Cuando depura una aplicación en modo remoto, no puede cambiar el código, pero puede cambiar el valor de los parámetros. (creo)

+7

La opción 'Proyecto -> Crear automáticamente' no estaba permitido. Ahora lo he activado y todo funciona bien. Danke, Markus. –

+0

¡Gracias! Este problema me ha vuelto loco por semanas. La sustitución de código caliente dejó de funcionar repentinamente, sin ningún mensaje de error. Resultó que había desconectado 'Build Automatically'. Volver a encenderlo resolvió el problema. –

+1

No es necesario configurar "Build automatically". Es importante construir un proyecto después de realizar cambios. – dhblah

8

Tuve problemas en un proyecto con Maven y Eclipse. No se mostraron errores, pero el reemplazo del código de acceso no funcionaba. Leí que "Build Automatically" debe ser verificado. Lo revisé y todavía no funcionó. Tuve algunos errores en otros proyectos en mi ruta de compilación. Creo que ese fue el error. Cuando investigué, descubrí que teníamos que desactivar la opción "Abortar compilación cuando hay errores de compilación". He dado los detalles en el siguiente enlace.

+0

Gracias por su pista, aunque no tengo errores de compilación (en ninguno de mis proyectos (relacionados)), la eliminación de esta opción me ayudó ...! – Veger

+0

"Anular creación cuando errores de ruta de compilación" desmarcar ayudó – carrizo

+4

... ¿dónde está el enlace? – specializt

0

Primero compruebe el Proyecto/Build automáticamente.

Puede ser también necesario para comprobar la configuración de implementación del servidoraplicación,

P. ejpara JBoss, en Eclipse, en la vista Servidores, haga doble clic en el servidor y hay una sección Escáneres de implementación con dos casillas de verificación:

  • Añadir faltante escáneres de despliegue
  • agregado Borrar escáneres de despliegue antes de la parada

https://docs.jboss.org/author/display/AS7/Deployment+Scanner+configuration JBoss AS/ Deployment Scanner configuration

Cuestiones relacionadas