如何在不重启服务器的情况下重新部署EJB项目

3
我是JBoss Seam和Java Web应用程序开发的新手。在浏览了一些教程后,有一件事情我无法解决,就是如何重新部署EJB项目中已经进行更改的bean,而不必重启托管使用这些bean的JBoss Seam Web项目的JBoss应用服务器(6.0)。JBoss应用服务器需要约2分钟才能启动,目前对于项目进行更改和重新部署而言非常痛苦。
我在网上阅读到的一些建议包括:
- 使用jmx-console,例如访问http://localhost:8080/jmx-console/...好的,但怎么做?我应该做什么? - 为ant创建一个build.xml文件,并获得某种自动部署功能...有好的示例吗?
你们其他经验丰富的JBoss Seam Web应用程序开发人员如何更快地部署项目?
非常感谢您的帮助。
3个回答

0
这可能是由于多种原因造成的:
  1. 应用程序试图维护状态。
  2. 新部署的应用程序与旧应用程序具有不同的类加载器。
  3. 其他随机原因。在我们的情况下,jboss-classloading.xml 配置不正确,导致热部署无法正常工作。

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

祝你好运。


就像上面所说的,我的 JBoss AS 一次性部署了太多不需要的项目... 在卸载了一些之后,速度就快了。感谢提醒配置问题,我会注意的。 - Fuzzy Analysis

0
  1. 使用JBoss热部署功能:只需从部署目录中删除您的EAR(WAR)并将新版本复制到该目录即可。
  2. 从您的IDE(Eclipse)以调试模式启动JBoss。然后,一些代码更改可以直接热交换到JVM中。如果热交换失败,则执行1.热部署。
  3. 尝试强大的JRebel插件。比2. JVM热交换功能更强大。您可以将Jrebel与1.热重新部署相结合-当JRebel插件失败时,然后进行热重新部署。

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


谢谢。我发现JBoss AS的缓慢是因为它一次部署了太多项目(我没有卸载旧项目,犯了一个错误!)。感谢您的帮助,如果将来遇到同样的问题,我会尝试您提到的热部署选项。 - Fuzzy Analysis

0

我听说的另一个选项是在JBoss中使用“Touch Descriptors”按钮(类似于“快速重新部署”选项)。

Touch Descriptors icon in JBoss Dev Studio 4.0

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接