我正在编写一个Java EE应用程序,在开发过程中使用Jetty作为app服务器。虽然(重新)部署速度很快,但我希望Java代码更改能够立即反映在正在运行的服务器中,而无需重新启动。 (我已使用useFileMappedBuffer
设置查看对静态投放内容的即时更改。
我已经看到有关使用Maven Jetty插件和设置scanInterval以重新部署Web上下文的问题,但这不是我想要做的。我的Jetty服务器是从Eclipse中的Java应用程序启动的,我希望代码更改能够立即反映在正在运行的服务器中,就像Eclipse中的普通Java应用程序一样。我正在运行代码"就位#34;即不首先构建和部署WAR文件。
我意识到Web应用程序有自己的类加载器以符合servlet规范,但我不介意冒着非标准行为的风险,以便在开发中更快地部署更改。我尝试使用WebAppContext.setClassLoader
将类加载器设置为" normal" classloader但无济于事。
有可能做我想要的吗?我相信JRebel声称要做到这一点,但我做的是什么,我不是?
答案 0 :(得分:1)
如果使用Eclipse中的remote debug连接到Jetty,则应该可以Hot code replace。
通过在Jetty启动脚本中添加以下内容来启用远程调试:
-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8787
答案 1 :(得分:1)