2010-08-31 70 views
6

我在Tomcat上使用Web应用程序的热交换Java调试功能。在一些类签名发生变化后,我得到了“Hot Code Replace Fail”Eclipse对话框 - 我明白这一点。Eclipse热代码替换失败 - 重新发布Web应用程序

我想在这种情况下重新发布应用程序(我可以这样做)并使用新部署的代码。然而,调试器stil抱怨,直到我重新启动服务器。因为其他应用程序和长时间的启动我不希望这样。

有没有办法告诉调试器,有新的类版本已经重新加载到一个新的webapp类加载器中,并且它是保存以继续?

谢谢。

回答

2

为什么不试试JRebel? JRebel是一个JVM Java代理程序,它与应用程序服务器集成在一起,使得类可以与现有的类加载器一起重新加载。只有已更改的类才会重新编译,并立即在运行的应用程序中重新加载。 JREbel插入IDE并构建系统。类和静态资源直接从工作区加载。 http://zeroturnaround.com/software/jrebel/

问候, 安德烈

0

有一个老PHD项目。这个人是由甲骨文带来的,但他的工作并没有完成Java 8,希望能够在Java 9中看到,但更有可能在Java 10中。我猜想有一个新的Java 8版本。我还没试过。

我的其他信息原题:Advanced Code Hot Swapping in JDK 8?

而且在Github上的项目页面:https://github.com/dcevm/dcevm

有了这个,你可热更换几乎所有类别改变从后曾重新启动JDK释放你。 (旁边的静态物体和单身的副作用,但这将是合乎逻辑的)

0

您是否尝试服务器选项 - 服务模块没有发布与发布?

Server Options
Publishing

而且不知道你说的其他应用程式的内容。

+0

你是对的:在这个屏幕上你可以改变一个参数来自动反映服务器的变化而不用重启,但它不是你所说的。它在发布部分,从未发布更改为自动发布时,资源发生变化 – 2015-02-21 16:47:32

+0

请注意选项“服务模块没有发布” – 2015-03-04 20:06:59

+0

我虽然这只是为WebContent文件夹内的资源,而不是为Java类 – 2015-03-05 12:37:24

相关问题