【问题标题】:Integrating JRebel with custom Ant/Ivy/Tomcat web application with Spring MVC使用 Spring MVC 将 JRebel 与自定义 Ant/Ivy/Tomcat Web 应用程序集成
【发布时间】:2014-01-28 20:14:27
【问题描述】:

我试图让 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 用于非常简单的项目,并没有深入了解该服务的工作原理。

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

谢谢

【问题讨论】:

    标签: spring tomcat ant ivy jrebel


    【解决方案1】:

    您是否真的重新编译(无论您使用 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 将只监视其中一个,然后它也很混乱。

    祝愿一切顺利, 西格玛

    【讨论】:

    • 谢谢,还在努力。 JRebel 横幅位于控制台中,并且许可证处于活动状态。好像我确实需要手动配置 JRebel 查找的位置。
    • 哦,ant构建文件生成所有东西到projects\web\web,这个文件夹由标准文件夹和Web应用程序文件组成(例如,css、js、index.jsp、lib) ,并且几乎所有 Web 应用程序的核心逻辑都在该 lib 文件夹内的 jar 文件中。但是,Eclipse 本身并不编译该项目。它的设置方式总是需要 Ant 来编译几乎任何东西。我想我需要更多地了解 JRebel 监控背后的基本流程。
    猜你喜欢
    • 2018-03-29
    • 1970-01-01
    • 2012-05-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-20
    • 1970-01-01
    相关资源
    最近更新 更多