EAR中的依赖管理

时间:2013-07-26 17:33:53

标签: java java-ee websphere ear modularity

我们的项目中有以下模块化结构,

EAR
  |
  | --- Web模块
  | --- ConnectorFacade
  | ---连接器
  | ---实用新型组件
  | --- BPEL模块

还有其他模块也用于理解我提到的几个模块的问题。

目前任何一个简单的更改都发生在上面提到的任何一个模块中我们需要做的 因为我们已经将所有模块归档到单个EAR中,所以在WebSphere应用程序服务器上进行整个部署。

我希望EAR应该与依赖模块分开,除了web模块之外,其他模块应该在EAR之外,这样每当连接器或任何其他模块模块发生任何变化时,我只会更新连接器jar并重新启动App服务器它应该选择新类,以便它可以避免我的部署过程,我可以在最短的时间内做好新的更改。

让我知道管理依赖罐子有很好的解决方案。

3 个答案:

答案 0 :(得分:1)

如'fnt'所述,OSGI可以解决您的问题。

您还可以使用远程EJB。

单独部署的jar中的远程服务

    @Stateless
    @Remote(MyRemoteInterface.class)
    public class MyService implements MyRemoteService {
      // Some implementations
    }

共享api

    interface MyRemoteService {

    }

在您的EAR中的某些模块中

    @Stateless
    public class MyBoundary {
      @EJB
      MyRemoteService service;

      // Stuff
    }

有关详细信息,请参阅here

答案 1 :(得分:0)

Websphere Application Server的最终解决方案是使用OSGi应用程序。

Working with OSGi Applications (WAS 7.0)

About OSGi Applications (WAS 8.0)

答案 2 :(得分:0)

您可以使用共享库,但这是一种肮脏的方式。 另一种模式是OSGI,但你应该调整你的所有逻辑,这是一种独立的思维方式。

我不知道隔离模块的构建会带来什么好处,只要你配置好你的构建工具,这将是几秒钟。