Tengo una aplicación Java 1.6 implementada en varias máquinas (~ 30) y comencé como un servicio de Windows.¿Cómo actualizar automáticamente una aplicación Java durante su inicio?
Mi problema principal se refiere al mantenimiento de estos artefactos desplegados: si desarrollo una nueva versión de esta aplicación, no quiero volver a implementarla manualmente en cada máquina.
Idealmente, cuando se inicia el servicio de Windows, comprueba en un servidor remoto si existe una actualización, y si se encuentra, entonces actualiza la aplicación. Tenga en cuenta que, después de esta actualización, es aceptable que el servicio deba reiniciarse nuevamente.
Este mecanismo se puede comparar con la verificación de instantáneas Maven: si hay una versión más reciente de una versión SNAPSHOT
en un repositorio remoto, entonces Maven la descarga antes de ejecutarla. Tenga en cuenta que la aplicación se implementará en un repositorio de Maven (en nuestro caso, Nexus), por lo que la comprobación de una actualización se realizará contra esta instancia de Nexus.
¿Cuáles son mis soluciones técnicas para implementar dicha actualización automática de la aplicación?
No dude en preguntarme más detalles acerca de la información técnica o sobre el contexto ...
Gracias.
Edición: Según lo indicado por Peter Lawrey, puedo utilizar Java Web Start. Sin embargo, ¿cómo puedo integrar JWS dentro de una aplicación Java que se ejecuta como un servicio de Windows?
Esto no es un problema de Java. Más de administración de implementación. – Santosh
Si bien como está redactado no es realmente un problema de Java, no veo cómo una versión ligeramente más genérica del problema (asegurando que la versión iniciada sea siempre la versión más reciente disponible) no se puede resolver en Java. ¿Una salida de la carga de clase de red, tal vez? –
@Santosh sí y no. Windows, especialmente los que estamos usando aquí, no proporciona las herramientas necesarias para facilitar dicho procedimiento. Dame Linux, ssh o algunos scripts bash, y estaré contento :) – romaintaz