如何在Java Web应用程序之间共享通用组件?

时间:2010-07-28 10:32:45

标签: java architecture java-ee struts2

环境

  • IDE:Netbeans 6.9
  • App Server:Glassfish 3
  • 框架:Spring,Hibernate,Struts 2

问题

我有2个网络应用程序。我想在它们之间共享资源 - 即jsp和其他资产(js-yui,jquery / images / css)的身份验证。我将添加更多Web应用程序,这些应用程序也需要访问这些常用组件。

作为最后的手段,我将使用公共资产创建另一个Web项目 - 包括通过http://common.mydomain

其他人是如何实现这一目标的?我可以创建一个Web资源jar / war并在两个应用程序中包含它吗?

我正在尝试,所以会更新任何进展问题。

非常感谢。

3 个答案:

答案 0 :(得分:1)

将这些“常见”组件放在单独的模块中(或在几个单独的模块中),并从应用程序的其他部分依赖此模块。 (我不确定它是如何在NetBeans中调用的,在IntelliJ IDEA中它被称为模块,在Eclipse中 - 它是同一工作区中的一个单独项目。)

答案 1 :(得分:1)

在eclipse中,您必须创建一个实用程序项目和一个包含该实用程序项目和当前Web应用程序的ear项目。然后,您可以将公共代码移动到实用程序项目,并将耳朵部署到glassfish。

必须通过类路径定位公共资源。使用JSF 2

这很容易

答案 2 :(得分:1)

Netbeans有这样做的功能。仅为共享组件创建新项目。将项目列为需要它的项目的依赖项,并确保在构建过程中两个项目都在IDE中打开。

IDE不可知的方式(我在自己的项目中使用。)
将是:

  1. 使用maven管理您的项目
  2. 将您的共享组件构建到自己的.jar
  3. 设置本地存储库服务器(nexus,artifactory)服务器以托管共享.jar
     (如果你是唯一的开发者,你可以用mvn install
  4. 解决这个问题
  5. 将您的新jar列为对需要它的项目(战争)的依赖。