出于某种原因,我无法使用 Eclipse 在外部 Tomcat 7
上运行 JRebel
。如果我在 IDE 中使用服务器运行时,一切正常,但如果我从命令行启动服务器并在外部部署应用程序,JRebel 不会反射(reflect)我对服务器的更改。
以下是我配置和部署项目的方式:
- 在项目配置选项卡的项目上启用
JRebel
- 启动设置为
从命令行本地运行
- 根据生成的配置创建
catalina-jrebel.bat
- 使用maven构建项目
- 使用
catalina-jrebel.bat run
启动服务器 - 通过 Tomcat 的
应用程序管理器
在服务器上部署 war 文件
现在,如果我修改示例 Servlet 并保存,则什么也不会发生。应用程序行为没有改变,控制台中没有任何内容。
我是否遗漏了什么,以及如何调试问题?
这里是catalina-jrebel.bat
的内容
@echo off
set REBEL_BASE=C:\Users\tutoivon\.jrebel
set JAVA_OPTS="-javaagent:C:\SLO\eclipse\plugins\org.zeroturnaround.eclipse.embedder_6.4.4.RELEASE\jrebel\jrebel.jar" %JAVA_OPTS%
call "%~dp0\catalina.bat" %*
最佳答案
一些你可以自己检查的东西:
- 服务器以 JRebel 横幅启动 - 因此您可以确定 JRebel 代理确实已连接到服务器。
- 在横幅中它说您有有效的许可证 - 没有许可证,不能重新加载。
- 构建的
.war
在WEB-INF/classes
中包含一个rebel.xml
- 这有助于 JRebel 找到更新类的位置通过 IDE。 rebel.xml
中的路径是绝对正确的,没有使用占位符(例如${rebel.workspace.path}
)——如果使用了占位符,则它们必须通过传递来定义,例如-Drebel.workspace.path=/path/to/workspace
到JAVA_OPTS
。如果操作正确,JRebel 还会在服务器日志中记录一行,例如JRebel: Monitoring directory '/path/in/rebelxml'
。
如果执行这些步骤后仍然无法正常工作,请联系 support@zeroturnaround.com。
关于java - JRebel 无法在外部 tomcat 7 上工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37339922/