【问题标题】:Deploying a Grails app to a running Tomcat将 Grails 应用程序部署到正在运行的 Tomcat
【发布时间】:2013-01-18 11:05:05
【问题描述】:

我们的 Tomcat 实例运行许多不同的 webapp:主要是 Struts/Struts2,但也有一些奇怪的 Grails 应用。

如果我需要更新 Struts 应用程序,通常我会从我的开发机器复制树,然后当 web.xml 更新时应用程序会重新启动。

对于 Grails,问题似乎要多得多。复制树并让应用程序重新启动几乎从来没有用过……明显的缺失类、数据库连接错误等。我发现唯一有效的方法是完全停止 tomcat,更新应用程序,然后重新启动 tomcat。明显丢失的类不再丢失,数据库连接正常,无需更改任何代码。但是,这显然也会影响所有其他应用程序。

有没有其他人看到过类似的问题?有没有我错过的技巧?

【问题讨论】:

    标签: tomcat grails


    【解决方案1】:

    将树复制到应用程序服务器is discouraged。 一种更好的方法是将 Grails 应用程序打包为 WAR:

    # grails war
    

    或者如果你configured maven:

    # mvn clean package
    

    这确保设置了“生产”环境。

    如果autoDeploy 被禁用或无法正常工作,您可以deploy the WAR file 并使用Tomcat Manager 重新启动webapp。

    【讨论】:

    • 从阅读这些链接看来,如果 autoDeploy=true,您可以将 Grails 应用程序部署到正在运行的 tomcat。如果它是假的,你无论如何都必须重新启动tomcat。我正在使用-Dgrails.war.exploded=true。提供这个命令行选项似乎很奇怪,但不鼓励以这种方式进行部署。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-01-18
    • 1970-01-01
    • 1970-01-01
    • 2017-09-04
    • 1970-01-01
    • 2016-09-07
    • 2011-03-16
    相关资源
    最近更新 更多