2

我们遵循的部署是我们使用runAssembler.bat 构建一个ear 文件并将其部署在应用服务器中。我们使用 weblogic 和 jboss 来测试我们构建的模块。然而,对于每一个小的变化,我们都需要运行 runAssembler 并构建一个新的 ear 并将其部署在应用服务器中并重新启动服务器。

我想知道是否有人想出一种方法来对由我们在 weblogic 或 jboss 中的 ATG 环境中编写的代码生成的类文件进行热交换。

4

3 回答 3

2

通过将 IDE 连接到调试端口上的应用程序服务器,通常可以进行热交换。在 Eclipse 和 JBoss 上的设置记录在此处此处此处这里有一些关于在 WebLogic 中进行设置的信息。

附加您的调试器,编辑 java 文件,单击“保存”并在 IDE 中使用热代码替换它现在应该更新正在运行的类文件。在 Eclipse 中,如果无法进行同步,它通常会弹出一个窗口。如果您使用的是 Eclipse,请确保选中项目下的“自动构建”标志,否则您将永远等待。我通过 JBOSS(爆炸的 ATG EAR)执行此操作没有任何问题,并且在 WebSphere 7 上执行此操作的成功率不定。确保您用于编译构建的相同 JAVAC 是加载到您的 IDE 中的那个也可能是谨慎的编译路径。

至少减少构建/部署时间的另一种方法是部署一个解压/分解的 EAR,然后简单地复制您的类文件(您可以使用 Eclipse FileSync插件)并重新启动服务器。

还有一些可用的商业选项,例如JRebel

于 2014-01-02T09:19:11.037 回答
2

在我们的组织中,我们在使用DCEVM方面取得了很好的成功。它只是修补您的 JDK(在 Windows 中:)jvm.dll

  1. 下载并修补您的 JDK
  2. 使用打过补丁的 JDK启动JBoss/Weblogic
  3. 设置Eclipse 的已安装 JRE 以指向已修补的 JDK(重新启动并重建一次)
  4. 启动服务器,启动调试器并连接
  5. 确保Eclipse 的 Debug 视图显示“Dynamic Code Evolution VM”(而不是“HotSpot VM”之类的东西)
  6. 更改您的代码,瞧!
于 2015-03-01T05:30:38.593 回答
0

你可以用 JRebel 做到这一点。热交换后,您不需要重新启动服务器,只需从 Weblogic 重新加载部署。

于 2014-01-02T09:06:23.983 回答