【问题标题】:How to redeploy an EJB Project without restarting the server如何在不重新启动服务器的情况下重新部署 EJB 项目
【发布时间】:2011-12-04 09:46:06
【问题描述】:

总的来说,我是 JBoss Seam 和 Java Web 应用程序开发的新手。在阅读一些教程时我无法弄清楚的一件事是如何重新部署我在 EJB 项目中更改的 bean,而无需重新启动托管 JBoss Seam Web 项目的 JBoss Application Server (6.0),它使用豆子。 JBoss AS 启动大约需要 2 分钟,目前对项目进行更改和重新部署很痛苦。

我在网上看到的一些建议包括:

  • 使用 jmx 控制台,例如。去http://localhost:8080/jmx-console/ ...好的,但是怎么做?我该怎么做?
  • 为 ant 创建一个 build.xml 文件,然后进行某种自动部署...周围有什么好的例子吗?

其他更有经验的 JBoss Seam Web 应用程序开发人员如何更快地部署您的项目?

非常感谢任何帮助,谢谢。

【问题讨论】:

    标签: java jboss ejb javabeans web


    【解决方案1】:

    这可能有多种原因:

    1. 一个试图维护状态的应用程序。
    2. 新部署的应用程序具有与旧应用程序不同的类加载器。
    3. 其他随机原因。在我们的例子中,jboss-classloading.xml 配置不正确,这导致热部署不起作用。

    您是否对 JBoss 配置进行了任何更改?这也可能导致热部署问题。

    祝你好运。

    【讨论】:

    • 如上所述,我的 JBoss AS 一次部署了太多不需要的项目......在取消部署一些之后,它并没有那么慢。感谢您对配置问题的提醒,我会注意的。
    【解决方案2】:
    1. 使用 JBoss 热重新部署功能:只需从部署目录中删除您的 EAR (WAR) 并将您的新版本复制到那里。
    2. 从您的 IDE (Eclipse) 以调试模式启动 JBoss。然后可以将一些代码更改直接热交换到 JVM 中。如果热插拔失败,则执行 1. 热重新部署。
    3. 试试很棒的JRebel 插件。比 2. JVM 热交换强大得多。您可以将 Jrebel 与 1. hot redeploys 结合使用 - 当 JRebel 插件失败时,然后进行 hot redeploy。

    请注意,热重新部署可能会在某些库(例如 Jasperreports)中显示 memory leaks。如果是这样,请重新启动您的服务器。但是您很少需要重新启动 JBoss。

    【讨论】:

    • 谢谢。我发现 JBoss AS 的缓慢是由于它一次部署了太多项目(我没有取消部署旧项目,真是个错误!)。感谢您的帮助,如果我以后遇到同样的问题,我会尝试您提到的热部署选项。
    【解决方案3】:

    有人告诉我的另一个选项是使用 JBoss 中的“触摸描述符”按钮(类似于“快速重新部署”选项)。

    Dev Studio 4.0 有它,但不确定早期版本。显然它会在服务器上创建一个新的时间戳并强制重新读取 web.xml 文件,从而重新部署。

    【讨论】:

      猜你喜欢
      • 2014-12-18
      • 1970-01-01
      • 2012-10-03
      • 1970-01-01
      • 1970-01-01
      • 2011-07-21
      • 1970-01-01
      • 2013-10-01
      • 1970-01-01
      相关资源
      最近更新 更多