我可以使用哪些技术/方法来热部署J2EE环境中的更改?

时间:2012-02-02 20:06:18

标签: java java-ee jboss drools

我在一个包含工资单系统的软件上工作,工资单规则有变化的趋势,特别是在税收方面。我的公司在美国各地设有分支机构,几乎每个州都有自己的州(有时是地方)税收规定。因此,我需要能够立即更新每个州的逻辑。我需要能够在不必推送整个应用程序的新版本的情况下完成此操作。我还需要能够访问数据库,我们使用JBoss作为AS。目前我们使用的是较早版本的Drools,它一直在运行,但感觉就像解决这个问题的黑客一样。

我一直在阅读OSGI,但听起来有点矫枉过正。

还有哪些其他选择?

3 个答案:

答案 0 :(得分:3)

很大程度上取决于在没有重启的情况下需要部署哪种逻辑。如果只是商业规则,流口水听起来像是一个合理的选择。

如果不止于此,并且包括一些技术级逻辑,您可以尝试像groovy这样的脚本语言。它的GroovyScriptEngine能够监视文件更改并在需要时重新编译代码。

最后有一些像LiveRebel这样的工具可以基本上平滑地重新部署任何Java应用程序。这是一个商业工具

答案 1 :(得分:2)

不确定为什么你说使用Drools的实现“感觉就像一个黑客”。 Drools是从头开始设计的,允许热(重新)部署业务规则。您可以将业务规则存储在规则存储库(如Guvnor),数据库,文件系统中,或者动态生成规则。您可以使用自己的代码访问规则,也可以使用Drools附带的知识代理之一。

在运行时,重新部署规则时,Drools会自动处理知识库更新并对其进行热部署。这些更改在任何现有会话中都是可见的并安全传播,这意味着无需重新创建会话或重新加载现有事实(数据)。

也许如果你能详细说明它的错误,我们可以指出你正确的方向。另外,您提到您使用的是旧版本的Drools。那个版本是什么?

答案 2 :(得分:1)

Liverebel 2.0是您的产品 - 请参阅http://liverebel.com