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

时间:2011-10-10 10:13:12

标签: java jboss ejb javabeans web

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

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

  • 使用jmx-console例如。转到http://localhost:8080/jmx-console/ ...好吧,但是怎么样?我该怎么办?
  • 为ant创建一个build.xml文件,然后得到某种自动部署的东西......周围有什么好的例子吗?

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

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

3 个答案:

答案 0 :(得分:0)

这可能是由于多种原因造成的:

  1. 试图维持状态的应用程序。
  2. 新部署的应用程序具有与旧版本不同的类加载器。
  3. 其他随机原因。在我们的例子中,jboss-classloading.xml配置不正确,这导致热部署无法工作。
  4. 您是否对JBoss配置进行了任何更改?这也可能导致热部署问题。

    祝你好运。

答案 1 :(得分:0)

  1. 使用JBoss热重新部署功能:只需从部署目录中删除您的EAR(WAR)并复制新版本。
  2. 从IDE(Eclipse)以调试模式启动JBoss。然后可以将一些代码更改直接热交换到JVM中。如果热插拔失败,则执行1. hot redeploy。
  3. 试用精彩的JRebel插件。比2. JVM热交换更强大。您可以将Jrebel与1.热重新组合 - 当JRebel插件失败时,然后进行热重新部署。
  4. 请注意,热重新部署可能会在某些库(例如Jasperreports)中显示memory leaks。如果是,请重新启动服务器。但是你很少需要重启JBoss。

答案 2 :(得分:0)

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

Touch Descriptors icon in JBoss Dev Studio 4.0

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

相关问题