如何将JRebel与Mule ESB集成?

Enr*_*que 6 java esb mule jrebel

是否有人试图将JRebel与Mule一起使用而不是典型的应用服务器?如果是这样,你能描述一下你的经历吗?

据我所知,目前,Mule并没有得到JRebel团队的正式支持.但是,我想知道是否可能有一些解决方法来解决这个问题.

Enr*_*que 4

尽管 Mule ESB 并未得到 JRebel 的正式支持,但我们已经找到了解决方法。首先,让我首先声明:

  • 截至目前,还无法使用JRebel 热部署 Mule XML 流。然而,Mule 提供了自己的机制来实现同样的目标。因此,缺乏 JRebel 支持并不影响交易。

所以,我们唯一可以热部署的是Java类,这仍然很受欢迎。我们该怎么做呢?

  • 首先在 $MULE_HOME/conf/wrapper.conf 中配置 JRebel 代理。在我们的例子中,所需的行是:

    wrapper.java.additional.13=-javaagent:{path to jrebel.jar}
    wrapper.java.additional.14=-Xbootclasspath:{path to rebelboot.jar}
    wrapper.java.additional.16=-Drebel.remoting_plugin=true
    wrapper.java.additional.19=-Drebel.remoting_port={whatever}
    
    Run Code Online (Sandbox Code Playgroud)

这些是与 Mule 一起启动 JRebel 所需的 JVM 参数。参数的编号是任意的。

我们想在远程模式下使用 JRebel。您可以在文档中阅读有关此模式的信息。wrapper.java.additional.16=-Drebel.remoting_plugin=true这就是和参数的原因wrapper.java.additional.19=-Drebel.remoting_port={whatever}

  • 现在,根据您的环境(Windows 或 *nix),通过执​​行 mule.bat 或 mule.sh 来启动 Mule。JRebel 应该随之启动。
  • 将您的 Mule 应用程序放在 $MULE_HOME/apps 中。它们将自动部署,从现在开始,它们的 .class 文件将由 JRebel 监控。
  • 在您的 IDE 中,安装JRebel 插件并应用您的许可证。然后,将 JRebel 性质添加到您的项目中,并使用我们之前在 .xml 文件中定义的端口配置其远程服务器 URL wrapper.conf
  • 对代码进行任何需要的更改并同步。它们应该成功地热部署到正在运行的 Mule 实例中。