我们遵循的部署是我们使用runAssembler.bat 构建一个ear 文件并将其部署在应用服务器中。我们使用 weblogic 和 jboss 来测试我们构建的模块。然而,对于每一个小的变化,我们都需要运行 runAssembler 并构建一个新的 ear 并将其部署在应用服务器中并重新启动服务器。
我想知道是否有人想出一种方法来对由我们在 weblogic 或 jboss 中的 ATG 环境中编写的代码生成的类文件进行热交换。
我们遵循的部署是我们使用runAssembler.bat 构建一个ear 文件并将其部署在应用服务器中。我们使用 weblogic 和 jboss 来测试我们构建的模块。然而,对于每一个小的变化,我们都需要运行 runAssembler 并构建一个新的 ear 并将其部署在应用服务器中并重新启动服务器。
我想知道是否有人想出一种方法来对由我们在 weblogic 或 jboss 中的 ATG 环境中编写的代码生成的类文件进行热交换。
通过将 IDE 连接到调试端口上的应用程序服务器,通常可以进行热交换。在 Eclipse 和 JBoss 上的设置记录在此处、此处和此处。这里有一些关于在 WebLogic 中进行设置的信息。
附加您的调试器,编辑 java 文件,单击“保存”并在 IDE 中使用热代码替换它现在应该更新正在运行的类文件。在 Eclipse 中,如果无法进行同步,它通常会弹出一个窗口。如果您使用的是 Eclipse,请确保选中项目下的“自动构建”标志,否则您将永远等待。我通过 JBOSS(爆炸的 ATG EAR)执行此操作没有任何问题,并且在 WebSphere 7 上执行此操作的成功率不定。确保您用于编译构建的相同 JAVAC 是加载到您的 IDE 中的那个也可能是谨慎的编译路径。
至少减少构建/部署时间的另一种方法是部署一个解压/分解的 EAR,然后简单地复制您的类文件(您可以使用 Eclipse FileSync插件)并重新启动服务器。
还有一些可用的商业选项,例如JRebel
在我们的组织中,我们在使用DCEVM方面取得了很好的成功。它只是修补您的 JDK(在 Windows 中:)jvm.dll
。
你可以用 JRebel 做到这一点。热交换后,您不需要重新启动服务器,只需从 Weblogic 重新加载部署。