eap desplegar deployar deploy como deployment jboss

deployment - deployar - desplegar war en wildfly 10



Despliegues remotos de JBoss (3)

Buena pregunta. No dices de qué versión de JBoss estás hablando (v4 y v5 son tan diferentes como tiza y queso), así que asumiré JBoss 4.x. Puede haber alguna similitud con JBoss 5, pero solo estoy familiarizado con 4.

El implementador de JBoss se basa en la URL, y todos los análisis de los componentes implementables se realizan por URL. El propio implementador está representado por el bean MainDeployer JMX, y estando en el árbol JMX, puede invocarse de forma remota a través de HTTP o RMI. Uno de los métodos en el implementador es deploy(URL) . Solo he usado esto en el contexto de las URL file:// , pero en teoría debería funcionar también para las URL HTTP. Entonces podría darle la URL de un archivo EAR / WAR en otro servidor, y debería funcionar, copiando el EAR / WAR localmente y desempaqueándolo.

Lo que no creo que se pueda hacer es "cargar" algo directamente al servidor y hacer que se despliegue. Nunca he visto esa funcionalidad en JBoss (lo que no quiere decir que no exista, por supuesto, solo que no he visto tal cosa).

Sé que los servidores de aplicaciones como Websphere y Weblogic tienen capacidades de implementación remota que pueden ser creadas con tareas Ant o Jython. ¿Hay algo equivalente para JBoss? Básicamente, si tengo un servidor en una ubicación conocida y tengo las credenciales adecuadas, ¿cómo puedo implementarlo en JBoss de forma remota?


Dependiendo de la configuración del servidor (dices que tienes credenciales), siempre puedes insertar tu archivo EAR / WAR en el directorio de implementación de JBoss. Eso sí, un posible problema con esto es que JBoss podría comenzar a desplegar el archivo antes de que termine de cargarse, lo que provocará que JBoss se queje de un archivo EAR / WAR corrupto.


Desplegar en un JBoss AS remoto no es fácil porque JBoss AS no proporciona mucha ayuda en esa área. Pero aquí hay algunas ideas / sugerencias:

  • Utilice la implementación de JBoss JSR-88 (que está eliminada en Java EE 6 y, por lo tanto, se eliminará en Java EE 7, pero esto le dará un poco de tiempo).
  • Use el DeployManager subyacente según lo sugerido por @skaffman y cargue su servidor desplegable en el servidor remoto y use el protocolo file:// o póngalo en un servidor web y use http:// .
  • Use Cargo (pero hay una limitación , el despliegue se debe cargar primero en el servidor remoto).
  • Utilice el plugin jboss-maven que utiliza la interfaz de despliegue JMX y, por lo tanto, es compatible con la implementación remota (consulte MJBOSS-3 ) como vimos anteriormente.
  • O simplemente cargue su deployable (FTP, SCP) en la máquina remota y muévalos de forma remota al directorio de deploy .