spring - 使用 Spring MVC 将 JRebel 与自定义 Ant/Ivy/Tomcat Web 应用程序集成

标签 spring tomcat ant ivy jrebel

我正在尝试让 JRebel 与一个相当大的企业 Web 应用程序一起工作,该应用程序使用 Ant + Ivy 进行构建/依赖管理、Spring 2.0 框架和 Spring MVC,所有这些都必须构建并部署到 Tomcat。

我在 Tomcat 和项目本身上启用了 JRebel。没有启用远程处理,因为我假设如果 Tomcat 和项目在同一台机器上,则不需要这样做。当我从 STS 中启动 Tomcat 服务器时,JRebel 似乎加载正常并且我没有看到(明显的)重大错误。

但是,对项目的任何更改都不会影响部署,而且我在控制台中看不到任何 JRebel 消息。该项目本身是一个有点不标准的布局,没有传统的 WEB-INF/src 结构。当我在 STS 中启用 JRebel 时,它只是在根目录中转储了一个 rebel.xml 文件。

供引用,该项目基于此代码库并具有相同的一般结构:https://github.com/NCIP/c3pr/tree/master/codebase

虽然 JRebel 指南很好,但它们只展示了 JRebel 用于非常简单的项目,并没有深入探讨该服务的确切工作原理。

非常感谢任何建议、资源或想法。

谢谢

最佳答案

您是否真的重新编译(无论您使用 Eclipse 还是 javac)您更改的那些类?检查您是否在“项目”菜单下启用了“自动构建”可能是个好主意。

JRebel 的工作方式是它实际上监视编译器输出文件夹(通常是“bin”文件夹或“build/classes”或类似的东西)。 这个文件夹(或多个文件夹)在 rebel.xml 文件中指定,并且该文件必须在您运行应用程序时位于应用程序的类路径中(WEB-INF/classes 或 jar 文件根目录或分解目录中)。

您能确定 rebel.xml 实际上在应用程序类路径中吗? 此外,您应该会在控制台中看到类似以下内容的消息: “JRebel:将监视目录 '/path/to/project/bin' 的更改。”。

此外,如果您在控制台中看到 JRebel 横幅,检查是否找到许可证很有用(如果未找到,则 JRebel 将无法工作)。

有时,当您的 Eclipse 将类编译到“bin”文件夹而您的构建脚本将它们编译到“build/classes”下并且在 rebel.xml 文件中仅指定其中一个位置时,有时也可能存在一些不匹配。在这种情况下,JRebel 将只监视其中一个,这也很困惑。

希望最好的, 西格玛

关于spring - 使用 Spring MVC 将 JRebel 与自定义 Ant/Ivy/Tomcat Web 应用程序集成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21034443/

相关文章:

java - 防止 Tomcat 覆盖 Controller 建议返回的错误响应

java - tomcat中的空 session 路径是什么?

java - ant 和 jdk 1.6 但用 1.5 编译

spring - 使用当前 httpclient (4.x) 的 RestTemplate 基本或摘要身份验证

tomcat - 从 run-app 配置 Grails 访问日志记录

java - 无法让 JSTL 与 Spring MVC 一起使用

内部类的 Java NoClassDefFoundError

java - 使用 ANT 我想复制已修改和未修改的文件

java - Spring LDAP 空指针异常

java - 以编程方式注册 @Component 注解的类