【问题标题】:How to redeploy an application on Jboss within Eclipse?如何在 Eclipse 中重新部署 Jboss 上的应用程序?
【发布时间】:2010-11-15 00:43:12
【问题描述】:

我正在开发一个基于 spring 的应用程序,它带有 facelets 和 Java Server Faces,可在 Jboss Application Server 上运行。作为开发框架,我使用的是 Eclipse Ganymede Platform Version: 3.4.2 ,它集成了 Web 标准工具,因此提供对不同服务器的支持,例如 Jboss 5.0。

我正在 Eclipse 中的 Jboss 上部署我的应用程序。第一次运行良好,但是当我尝试进行一些更改并重新发布我的应用程序时,它只是没有得到它,所以我不得不重新启动服务器。这很烦人,因为每次我必须重新启动 JBoss 大约需要一分钟左右。

所以,问题是:有什么方法可以在 Jboss 上重新部署应用程序而无需重新启动它?

【问题讨论】:

    标签: java eclipse spring jboss


    【解决方案1】:

    考虑使用 JBoss 工具插件。它显着改善了使用 Eclipse 和 JBoss 进行开发的体验。 http://www.jboss.org/tools

    【讨论】:

      【解决方案2】:

      如果您使用 eclipse 管理 JBoss(启动/停止),您应该能够直接从 eclipse 重新部署。

      如果你正在部署到 deploy 目录,那么在原来的 war/ear 上运行会导致它重新部署。请注意,根据您的应用程序大小,您可能会遇到 OutOfMemoryErrors。

      我们所做的(尽管它并不总是有效)是我们部署一个耳朵,运行 JBoss 并使用 JPDA 远程调试。当我们进行更改时(只要您不更改方法的签名),它会将类热交换到发生更改的类。

      【讨论】:

        【解决方案3】:

        如果您要部署 WAR 文件,那么最简单的方法是在 eclipse 中使用“服务器”插件。 MyEclipse 是预先配置好的。

        在这里,您将能够选择您的 servlet 容器并在 eclipse 中拥有完全的控制权。不需要任何 ANT 文件,也不需要离开 Eclipse IDE。

        为了使此设置生效,您的项目需要是“Web 项目”。

        设置好网络项目后,点击服务器窗口中的配置按钮,选择您的网络项目并添加它。

        然后点击服务器屏幕上的运行/调试按钮。

        唯一的问题是,您需要确保您的源类路径指向 WEB-INF/classes 而不是 target/classes 以便热部署工作。 maven 插件 eclipse:eclipse 重置了这个所以要小心。

        【讨论】:

        • 这就是我所做的,但是当我在 Jboss 上再次运行该应用程序时,它会卡住一条消息,上面写着“销毁单例...”之类的消息,并且 Web 应用程序无法正常工作。另一方面,当我尝试重新部署时,它开始消耗大量资源,以至于我不得不从 bash 中杀死 jboss 进程。太疯狂了!
        • 两件事:(1)你有没有试过部署到Tomcat,看看有没有类似的问题?我假设您不需要 EJB 容器。 (2) 您是否尝试过建立一个全新的非常简单的项目,看看它是否适用于 tomcat/jboss?
        • 使用 Jboss 是客户的要求,所以没有变化。在我们之前的项目中,我们使用Tomcat作为应用程序服务器,重新部署应用程序时没有问题。这很奇怪,但是我们有 3 个人参与了这个项目,并且在使用 Jboss 应用服务器时遇到了同样的问题。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-04-22
        • 2023-03-10
        • 2010-12-13
        • 1970-01-01
        • 2016-09-25
        • 1970-01-01
        相关资源
        最近更新 更多