È possibile includere / incorporare un'applicazione Java EE (file di guerra) all'interno di un'altra?

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

  •  05-07-2019
  •  | 
  •  

Domanda

Ho un'applicazione che è un'applicazione portale e voglio consentire ad altri utenti di aggiungere le loro applicazioni. Per fare ciò ho bisogno di un modo per poter accedere alle loro applicazioni nelle mie. È possibile?

È stato utile?

Soluzione

Non puoi inserire WAR all'interno di altre WAR. È necessario un file EAR per contenere WAR, EJB, ecc. Un modo per implementare la comunicazione tra WAR è comprimere quella logica direttamente nell'EAR. Tutto dipende da cosa stai cercando di fare.

Altri suggerimenti

il modo di fare la comunicazione inter .WAR è con il metodo http: / /java.sun.com/j2ee/1.4/docs/api/javax/servlet/ServletContext.html#getContext(java.lang.String)

ServletContext.getContext (URIOfOtherWAR_resource)

L'ho usato con successo per fare ciò di cui stai parlando.

Forse hai bisogno di un sistema plug-in o portlet, quindi il tuo utente non svilupperà un'applicazione di guerra ma includerà il proprio portlet all'interno dell'applicazione (guerra). C'è uno standard: JSR 168 e diverse implementazioni: http://developers.sun.com/portalserver/reference/techart/jsr168/

Come altri hanno sottolineato, incorporare WAR all'interno di WAR non è un'opzione. Tuttavia, potrei avere una soluzione alternativa per te.

La maggior parte dei container Web con cui ho dimestichezza ha un "test deploy / auto deploy" modalità / funzionalità, in cui distribuiranno automaticamente un'applicazione se il WAR viene copiato nella directory corretta.

L'applicazione del portale potrebbe certamente consentire il caricamento di WAR e potrebbe archiviare i byte caricati in una determinata directory con un determinato nome file. Il tuo contenitore Web potrebbe fare il resto. È quindi possibile collegarsi alla nuova applicazione dal proprio portale o qualsiasi altra cosa. Tutto ciò è relativamente facile da fare.

Tuttavia, tieni presente che questa è un'idea orribile in caso di problemi di sicurezza. Stai essenzialmente permettendo ai tuoi utenti di eseguire codice arbitrario sul tuo server. A meno che non ti fidi completamente che tutti i potenziali utenti siano allo stesso tempo non malintenzionati e perfettamente competenti (pensa a cicli infiniti), qui stai chiedendo molti problemi.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top