update tools sts setup plugin instalar eclipse eclipse-kepler jboss-tools wildfly

sts - update jboss tools eclipse



Eclipse Kepler y JBoss Wildfly despliegue en caliente (5)

Estoy tratando de usar eclipse kepler para Java EE 7. Ya instalé JBoss Tools y agregué JBoss Wildfly correctamente como servidor. Sin embargo, mis cambios no se implementan automáticamente. ¿Hay alguna forma de que la aplicación se pueda implementar automáticamente igual que cuando se usa glassfish?


Agregue atributos (desarrollo, intervalo de verificación, modificación-intervalo de prueba, recompilación en falla) en el archivo de configuración en xPath = // servlet-container / jsp-config /

<servlet-container name="default" default-buffer-cache="default" stack-trace-on-error="local-only"> <jsp-config development="true" check-interval="1" modification-test-interval="1" recompile-on-fail="true"/> </servlet-container>

(Funciona en WildFly-8.0.0.Final)


Inicie el servidor en modo de depuración y hará un seguimiento de las posibilidades dentro de los métodos. Otros cambios Se le pedirá que reinicie el servidor.


Supongo que está utilizando la última versión de Wildfly (8.0 Beta 1 en el momento de la escritura).

En el archivo de configuración standalone.xml, busque <jsp-config /> . Agregue el atributo development = "true" y debería desplegarse en caliente. La configuración resultante se verá así:

<jsp-config development="true"/>


Tanto @varantes como @Sean son esencialmente correctos, pero estas respuestas no están completas.

Desafortunadamente, la única manera en un entorno de servidor java de tener una implementación en caliente completa y sin tiempo de inactividad es mediante el uso de JRebel pagado o una herramienta gratuita con spring-loaded .

Pero para proyectos pequeños, hay algunas formas de acelerar el trabajo mediante una implementación parcial en caliente. Esencialmente:

  1. Cuando está habilitada la opción Publicar automáticamente cuando el recurso cambia, luego los cambios dentro de *.html , *.xhtml archivos se reflejan inmediatamente tan pronto como actualice el navegador.
  2. Para hacer que la implementación en caliente funcione también para archivos *.jsp , debe hacer dentro de $ {wildfly-home} /standalone/configuration/standalone.xml hacer el siguiente cambio:
    <jsp-config/>
    reemplazar con:
    <jsp-config development="true"/>

reinicie el servidor y disfrute de la implementación en caliente de archivos web.

Pero cuando se modifican los archivos de origen *.java , solo es posible una implementación parcial en caliente.
Como @varantes indicó en su respuesta, habilitar el comportamiento de recarga de la aplicación con el patrón de expresiones regulares establecido en /.jar$|/.class$ es una opción, pero tiene un inconveniente importante: se reinicia todo el módulo, por lo tanto:

  1. Lleva algo de tiempo (dependiendo de qué tan grande es un módulo).
  2. Todo el estado de aplicación se pierde.

Así que personalmente, desaliento esta solución.
JVM admite (en modo de depuración) el intercambio de códigos para los cuerpos de los métodos. Entonces, mientras esté modificando solo cuerpos de métodos existentes, estará en casa (cero tiempo de inactividad, los cambios se reflejarán de inmediato). Pero tiene que deshabilitar la publicación automática dentro de la configuración del servidor, de lo contrario el estado de la aplicación aún será destruido por esa nueva publicación.

Pero si está diseñando mucho código java (agregando clases, anotaciones, constructores), desafortunadamente solo puedo recomendar establecer la publicación en Nunca publicar automáticamente (o cerrar el servidor) y cuando termine su trabajo en archivos java, reinicie manualmente el módulo ( o servidor de encendido). Depende de usted.

Funciona para proyectos java pequeños, pero para proyectos más grandes, JRebel es invaluable (o simplemente cargado por resorte), porque todos los enfoques descritos anteriormente no son suficientes.
BTW: también debido a tales problemas, soluciones como Rails / Django / Play! Framework Play! Framework ganó tan enorme popularidad.

Buena suerte y codificación rápida!


Usando Eclipse, haga doble clic en su Servidor WildFly para editar las siguientes propiedades:

  1. Publicación : seleccione "Publicar automáticamente después de un evento de compilación". También me gusta cambiar el intervalo de publicación a 1 segundo.
  2. Comportamiento de recarga de la aplicación : marque la casilla de verificación "Personalizar recarga de la aplicación ..." y edite el patrón de expresión regular a /.jar$|/.class$

Eso es. ¡Buena suerte!