【发布时间】:2017-06-12 21:03:51
【问题描述】:
我正在尝试在我机器上的 Tomcat 上设置 java 类热交换,但 没有 在我的 IDE (Eclipse) 中配置。在所有示例中,我都可以找到 Tomcat 服务器在 Eclipse 中运行。是否可以在外部 tomcat 上使用 DCEVM+HotSwapAgent 进行代码热交换?这是我到目前为止所做的:
- 将 DCEVM 设置为
jdk1.8.0_112的 altjvm,使用DCEVM-light-8u112-installer.jar - 更新了 Tomcat 的启动以包含以下内容:
set JAVA_OPTS=-XXaltjvm=dcevm -javaagent:<path-to>hotswap-agent-1.0.jar %JAVA_OPTS% - 部署了我的应用程序
war,其中在WEB-INF/classes中包含一个hotswap-agent.properties
在我的hotswap-agent.properties 文件中,我已将extraClasspath 属性设置为我Eclipse 工作区中项目的bin 文件夹。我还设置了autoHotswap=true(无论是否附加调试器,我都希望进行代码热插拔)。
使用此设置,当我在 Eclipse 中构建(它设置为自动构建)时,我无法让 Tomcat 对更改做出反应。我错过了一些东西来让它工作吗?
旁注 - 我已经用 JRebel 完成了与上述完全相同的事情,所以我知道这至少是可能的。我只是想看看我是否可以让它与所有开源工具一起使用。提前致谢!
【问题讨论】:
-
我应该提到我还打开了日志记录,我在
agent.log中看到这样的行:HOTSWAP AGENT: 15:25:10.348 DEBUG (org.hotswap.agent.util.classloader.URLClassLoaderHelper ) - 将 extraClassPath URL [file://] 添加到 classLoader sun.misc.Launcher$AppClassLoader@18b4aac2。我在日志中没有看到任何错误...
标签: java tomcat8 dcevm hotswapagent