在另一个java Web项目中包含WAR文件

时间:2013-06-28 04:26:46

标签: java web-services java-ee web-applications

如何在另一个Web项目中包含WAR文件?如果可能的话,我们需要使用哪个Context来命中WAR文件中的服务,以及我们需要在哪里放置(位置)WAR文件?我告诉我的主管,根据我的理解,这是不可能的,因为服务器将无法将请求root解析为放置在包装器web项目中的WAR。如我错了请纠正我。示例 - 考虑我们有两个Web项目A和B.我想为项目B创建WAR并将其放在项目A中。谢谢。

4 个答案:

答案 0 :(得分:1)

我认为你不能在WAR中创建一个WAR。

但你可以做的是为WAR B创建一个公开暴露给网络的界面。

使用该界面将信息从A传递到B,反之亦然。

答案 1 :(得分:1)

通常,war文件不包含war文件。它们可以包含jar文件;这就是目录WEB-INF/lib的用途。如果要将多个Web应用程序捆绑在一起,则需要创建一个ear文件并使用Glassfish或JBoss之类的应用程序服务器。 EAR文件也可以与Enterprise JavaBeans一起使用。

答案 2 :(得分:1)

首先,让我们澄清一些可能的错误观念:

  • 将WAR文件放在另一个WAR文件中是没有意义的。 Webapps不包含其他Web应用程序。另一个内的WAR文件根本不起作用。

  • 如果一个webapp只需要使用另一个webapp,则不需要在另一个中包含一个项目。他们可以(并且可以说是应该)单独的项目。

但也许你实际上是在讨论构建一个EAR文件......这实际上是一个可以部署的完整的应用程序容器。这可以合理地包含多个WAR文件。但是我们需要知道你正在谈论的项目 kind 。它是Eclipse还是Netbeans项目?这是一个Maven模块?它是一个Ant项目吗?

答案 3 :(得分:1)

像其他人所说的那样,战争不能包含其他战争。

但是,如果您使用的是maven,则可以创建overlay。这真是一种简单的方式来爆炸一场战争的内容而不是另一场战争。由此产生的战争将有一个根上下文。如果目标是在多场战争中分享共同内容,那么这是一条很好的路线。