Est-il possible d'inclure / incorporer une application Java EE (fichier war) dans une autre?

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

  •  05-07-2019
  •  | 
  •  

Question

J'ai une application qui est une application de portail et je veux autoriser d'autres utilisateurs à y ajouter leurs applications. Pour ce faire, j'ai besoin d'un moyen d'accéder à leurs applications dans la mienne. Est-ce possible?

Était-ce utile?

La solution

Vous ne pouvez pas insérer de WAR dans d'autres WAR. Vous avez besoin d'un fichier EAR contenant des fichiers WAR, EJB, etc. L'un des moyens d'implémenter une communication inter-WAR consiste à intégrer cette logique directement dans le fichier EAR. Tout dépend de ce que vous essayez de faire.

Autres conseils

le moyen de faire la communication entre .WAR est par la méthode http: / /java.sun.com/j2ee/1.4/docs/api/javax/servlet/ServletContext.html#getContext(java.lang.String)

ServletContext.getContext (URIOfOtherWAR_resource)

Je l'ai utilisé avec succès pour faire ce dont vous parlez.

Peut-être avez-vous besoin d'un système de plug-in ou d'un portlet pour que votre utilisateur ne développe pas une application de guerre, mais inclue son portlet dans votre application (war). Il existe une norme: JSR 168 et plusieurs implémentations: http://developers.sun.com/portalserver/reference/techart/jsr168/

Comme d'autres l'ont souligné, l'intégration de fichiers WAR à l'intérieur de fichiers WAR n'est pas une option. Cependant, je peux avoir une solution de contournement pour vous.

La plupart des conteneurs Web que je connais bien ont un " test de déploiement / déploiement automatique " mode / capacité, où ils déploieront automatiquement une application si le fichier WAR est copié dans le bon répertoire.

Votre application de portail pourrait certainement permettre le téléchargement de fichiers WAR et stocker les octets téléchargés dans un répertoire donné sous un nom de fichier donné. Votre conteneur Web pourrait faire le reste. Vous pouvez ensuite créer un lien vers la nouvelle application à partir de votre portail ou autre. Tout cela est relativement facile à faire.

Toutefois, sachez que c’est une idée horrible s’il ya un problème de sécurité. Vous autorisez essentiellement vos utilisateurs à exécuter du code arbitraire sur votre serveur. Sauf si vous faites entièrement confiance à tous les utilisateurs potentiels pour qu'ils soient à la fois non malveillants et parfaitement compétents (pensez à des boucles infinies), vous vous exposez à beaucoup de problèmes.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top