¿Es posible incluir / incrustar una aplicación Java EE (archivo war) dentro de otra?

StackOverflow https://stackoverflow.com/questions/178554

  •  05-07-2019
  •  | 
  •  

Pregunta

Tengo una aplicación que es una aplicación de portal y quiero permitir que otros usuarios le agreguen sus aplicaciones. Para hacer esto necesito alguna forma de poder acceder a sus aplicaciones en la mía. ¿Es esto posible?

¿Fue útil?

Solución

No puedes poner WAR dentro de otros WAR. Necesita un archivo EAR para contener WAR, EJB, etc. Una forma de implementar la comunicación entre WAR es empaquetar esa lógica directamente en el EAR. Todo depende de lo que estés tratando de hacer.

Otros consejos

la forma de hacer comunicación inter .WAR es por el método http: / /java.sun.com/j2ee/1.4/docs/api/javax/servlet/ServletContext.html#getContext(java.lang.String)

ServletContext.getContext (URIOfOtherWAR_resource)

He usado esto con éxito para hacer lo que estás diciendo.

Tal vez necesite un sistema o un portlet de complementos, por lo que su usuario no desarrollará una aplicación de guerra, sino que incluirá su portlet dentro de su aplicación (guerra). Hay un estándar: JSR 168 y varias implementaciones: http://developers.sun.com/portalserver/reference/techart/jsr168/

Como han señalado otros, incrustar WARs dentro de WARs no es una opción. Sin embargo, es posible que tenga una solución para usted.

La mayoría de los contenedores web con los que estoy familiarizado tienen una " implementación de prueba / implementación automática " modo / capacidad, donde implementarán automáticamente una aplicación si el WAR se copia en el directorio correcto.

Su aplicación de portal ciertamente podría permitir la carga de WAR, y podría almacenar los bytes cargados en un directorio dado bajo un nombre de archivo dado. Tu contenedor web podría hacer el resto. A continuación, puede vincular a la nueva aplicación desde su portal, o lo que sea. Todo esto es relativamente fácil de hacer.

Sin embargo, tenga en cuenta que esta es una idea horrible si existe algún problema de seguridad. Básicamente, está permitiendo a sus usuarios ejecutar código arbitrario en su servidor. A menos que confíe en que todos los usuarios potenciales sean no maliciosos y perfectamente competentes (piense en bucles infinitos), está planteando muchos problemas aquí.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top