是否可以在另一个中包含/嵌入一个Java EE应用程序(war文件)?

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

  •  05-07-2019
  •  | 
  •  

我有一个应用程序,它是一个门户应用程序,我想允许其他用户添加他们的应用程序。为了做到这一点,我需要一些方法来访问我的应用程序。这可能吗?

有帮助吗?

解决方案

您不能将WAR放在其他WAR中。您需要一个包含WAR,EJB等的EAR文件。实现WAR间通信的一种方法是将该逻辑直接打包在EAR中。这一切都取决于你想要做什么。

其他提示

通过该方法进行国际.WAR通信的方式 http:/ /java.sun.com/j2ee/1.4/docs/api/javax/servlet/ServletContext.html#getContext(java.lang.String)

ServletContext.getContext(URIOfOtherWAR_resource)

我成功地用这个来做你正在谈论的事情。

也许您需要一个插件系统或portlet,因此您的用户不会开发war应用程序,而是将其portlet包含在应用程序中(war)。有一个标准:JSR 168和几个实现: http://developers.sun.com/portalserver/reference/techart/jsr168/

正如其他人所指出的那样,在WAR中嵌入WAR不是一种选择。但是,我可能会为您解决。

我熟悉的大多数Web容器都具有“测试部署/自动部署”功能。模式/功能,如果将WAR复制到正确的目录中,它们将自动部署应用程序。

您的门户网站应用程序当然可以允许上传WAR,它可以将上传的字节存储在给定文件名下的给定目录中。您的Web容器可以完成剩下的工作。然后,您可以从门户网站链接到新应用程序,或者其他任何内容。所有这一切都相对容易。

然而,请注意,如果存在任何安全问题,这是一个可怕的想法。实质上,您允许用户在您的服务器上执行任意代码。除非你完全相信所有潜在用户都是非恶意的并且非常称职(想想无限循环),否则你在这里要求很多麻烦。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top