tomcat的;在另一场战争中将一场战争称为图书馆

时间:2010-01-18 21:52:10

标签: tomcat reference war

我有一些tomcat应用程序,使用.war文件部署在tomcat中。尽管这些战争是彼此分离的,但它们都是更大概念/应用程序的一部分,而且通常,一场战争需要从另一场战争中调用代码。

假设我有2个.wars,“a.war”和“b.war”......我希望能够使用“a.war”中的一些类,从“b.war”中。当然,一种选择是将公共代码拆分为第三个“.jar”,但由于我不想进入的原因,这将导致其他问题(此外,在我的情况下,它不是一个案例) “公共代码”,但更像是“一个应用程序调用另一个”。)

我有什么选择?

3 个答案:

答案 0 :(得分:1)

如果这里的意图是针对单独的.wars中的“子应用程序”在较大的应用程序的宏方案中相互通信,而不是共享代码/ lib,我建议:

  1. Servlets - 设置Servlet以促进这些应用程序之间的通信,以便它们可以相互通信。在web.xml文件中注册servlet,为预期的servlet URL运行一些连接测试,然后您将立即启动并运行。

  2. Webservices - 为您的应用找到合适的Web服务实现,并创建一个wsdl。

  3. RMI,就像BranTheMan所暗示的那样。

  4. Servlets之间的跨文本通信(尚未尝试过)

答案 1 :(得分:0)

如果只是“一个应用程序调用另一个应用程序”,则可以使用Java RMI。

答案 2 :(得分:0)

我不确定你是完全反对创建.jar,还是反对每个应用程序创建1个jar的想法,但在tomcat中有共享库的想法。

在Tomcat 5.5中,它位于/ shared /,在Tomcat 6中,它位于/ lib下面。如果你把.jars(或.class文件?从未尝试过)放在那里,它们可能被同一服务器实例中的任何.war引用。

一方面,这很好,使得.wars很好而且很小,并且可能有助于permgen空间,但另一方面,如果它们被许多.wars共享,很难对工件进行版本化。