在多个ESB应用程序中使用相同的JBoss Action,无需重复代码

时间:2010-01-19 10:38:57

标签: java jboss reference

我正在开发一个项目,该项目由部署在JBoss Application Server上的多个ESB应用程序组成。

每个ESB应用程序通过几个动作(它们扩展AbstractActionLifecycle)处理消息(验证,丰富......); 其中一些操作对于所有应用程序都是相同的。

为避免代码重复,我将所有多次使用的操作移动到CommonService.esb应用程序中。这种方法到目前为止工作正常,除了一个问题:

当我重新部署CommonService.esb时,我希望重新加载所有操作。 然而,这种情况并非如此。没有创建新的操作实例,旧实例仍然存在。 我理解为什么会发生这种情况(JBoss仍然引用了这些操作,因此没有垃圾收集),但我想知道是否有修复它。

我可以问JBoss重新加载它的动作吗?是否有更好的方法来分享在多个地方使用的行动?

1 个答案:

答案 0 :(得分:2)

一旦被告知两个项目之间存在依赖关系,JBoss就可以/将重新加载这些操作。

我将以下内容添加到所有其他项目的META-INF / deployment.xml中。

<?xml version="1.0" encoding="UTF-8"?>
    <jbossesb-deployment>
    <depends>jboss.esb:deployment=CommonServices.esb</depends>
</jbossesb-deployment>