【问题标题】:Glassfish war lifecycle questionGlassfish 战争生命周期问题
【发布时间】:2010-03-23 01:28:12
【问题描述】:

在 glassfish 中重新部署新版本正在运行的应用程序的正确方法是什么?我有一个 WAR 正在运行,并且我已经进行了更改。我认为进行取消部署 + 部署可能是正确的,但 glassfish (v3) 在我取消部署时经常崩溃。

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

【问题讨论】:

    标签: glassfish deployment war lifecycle


    【解决方案1】:

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

    我推荐的方法是 'asadmin redeploy --name foo --properties keepSessions=true foo.war' (或者使用目录部署来部署网络应用...)

    您可以查看man page for the deploy subcommand of asadmin了解更多详情。

    我几乎从不先取消部署然后再部署......这需要很长时间。

    我几乎从不创建 dot-war 文件....我通常进行目录部署,这样可以省去创建和分解 war 文件的时间。

    通过使用目录部署,我还可以对 jsp 文件进行调整并对其进行测试,而无需重新构建/重新部署步骤。

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

    您描述的方法可能不会导致服务器崩溃...请在https://glassfish.dev.java.net/servlets/ProjectIssues 提出问题,以便团队中的人可以追踪问题可能是什么。

    【讨论】:

      【解决方案2】:

      undeploy 表示删除 Web 应用程序的所有痕迹:

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

      您的问题何时出现? GlassFish 真的会崩溃吗?你能不能给我们更多的细节。


      作为记录,GlassFish v3 有一个redeploy 命令:

      asadmin redeploy --name mywar mywar.war
      

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

      【讨论】:

      • 好吧,不是 all... 在 Windows 上它无法删除 WEB-INF/lib 中的 jar 文件,所以这些文件会挂掉。当我第一次看到它时非常令人不安,直到我看到陈旧的文件列表。 :-)
      【解决方案3】:

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

      您使用管理 GUI 还是 asadmin(命令行)来执行此操作?两种方式的行为是否相同?

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-12-29
        • 2011-10-06
        • 1970-01-01
        • 1970-01-01
        • 2011-01-24
        相关资源
        最近更新 更多