2010-03-23 80 views
5

在glassfish中重新部署正在运行的应用程序的新版本的正确方法是什么?我有一个WAR正在运行,并且我做了更改。我认为做一个undeploy +部署可能是正确的,但glassfish(v3)经常崩溃,当我取消部署。Glassfish战争生命周期问题

在glassfish中重新部署正在运行的应用程序的正确方法是什么?

回答

4

有许多方法可将Web应用程序重新部署到GlassFish v3上。

我建议的方法是“asadmin的重新部署--name富--properties keepSessions =真foo.war”(或使用目录部署Web应用程序...)

你可以看一下man page for the deploy subcommand of asadmin了解更多细节。

我几乎没有取消部署,然后部署....它需要太长时间。

我几乎没有创建一个点战文件....我通常做目录部署,这消除了用尽创建,然后爆炸战争文件的时间。

通过使用目录部署,我还可以将调整应用到jsp文件并测试它们,而无需重建/重新部署步骤。

我喜欢在开发时使用keepSessions属性。我不知道这个属性是否会在生产环境中有用。

您描述的方法可能不会导致服务器崩溃......请在https://glassfish.dev.java.net/servlets/ProjectIssues处提交问题,以便团队成员可以找出问题所在。

+0

@vkraemer - 伟大的提示,谢谢。 – Robot 2010-03-23 12:08:51

0

不知道为什么V3应该是不同的,但在V2中,这正是我们所做的。我们首先取消部署,然后再部署。

您是否使用admin GUI或asadmin(命令行)来执行此操作?这两种行为是一样的吗?

2

undeploy意味着消除一个Web应用程序的所有痕迹:

  • 它的类加载器
  • 编译的JSP
  • 文件持久的HTTP会话

贵的问题发生时? GlassFish真的会崩溃吗?你可以给我们更多的细节。


为了记录在案,GlassFish的第三版有redeploy命令:

asadmin redeploy --name mywar mywar.war 

但由于redeploy = undeploy + deploy,这不会解决你的问题。

+0

那么,不是*所有* ...在Windows上它不能删除WEB-INF/lib中的jar文件,所以那些在周围。当我第一次看到它时非常不安,直到看到陈旧的文件列表。 :-) – Snekse 2012-09-26 22:44:38