【问题标题】:Pass runtime arguments to grails project on tomcat server将运行时参数传递给 tomcat 服务器上的 grails 项目
【发布时间】:2015-11-26 11:59:06
【问题描述】:

我试图在运行时将一个变量传递给我的应用程序,以配置我的外部配置文件的存储位置。

我需要外部配置文件,以便可以更改配置,而不必在每次配置更改时部署新版本,并且希望能够在运行时定义这些文件的位置,以便应用程序更具可移植性和部署应用程序的团队可以按照他们现有的规则来存储配置。

我读过这样的答案: How to add custom "-Djava" arguments to Grails app? - 但我不确定这与我有什么关系,从在我的本地机器上安装 war 文件,到使用传入的参数部署它。我一直在使用 Tomcat Web 应用程序管理器来简单地选择要上传的war文件,然后点击delpoy - 文件上传并自动爆出并启动。

https://grails.github.io/grails-doc/latest/ref/Command%20Line/war.html - 这表明参数必须在创建 war 文件时传入,这不是我想要的。

在我的代码中:

grails.config.locations = ["${System.properties['configFolder']}/application-config.properties"]

我正在寻找一种在从应用程序管理器部署时包含参数的方法,或者类似的命令

deploy myApp.war -DconfigFolder="/usr/share/tomcat5/.grails/myApp/conf/application-config.properties"

【问题讨论】:

    标签: apache tomcat grails deployment configuration


    【解决方案1】:

    编辑

    事实证明,您应该在启动 tomcat 服务器时(或之后)传递运行时参数,而不是在部署应用程序时。

    需要的命令是:

    export CATALINA_OPTS="-DconfigLocation=/usr/share/tomcat5/.grails/TAPaS/"
    

    或您想要的任何参数/值。

    这可以在服务器启动后手动输入,也可以在CATALINA_HOME 目录中创建包含该命令的 setenv.sh 文件。这可以使用echo $CATALINA_HOME 找到。另一种找到它的方法是使用下面的启动命令,并查看响应,例如

    bash catalina.sh start
    Using CATALINA_BASE:   /opt/apache-tomcat-7.0.61
    Using CATALINA_HOME:   /opt/apache-tomcat-7.0.61
    Using CATALINA_TMPDIR: /opt/apache-tomcat-7.0.61/temp
    Using JRE_HOME:        /usr
    Using CLASSPATH:       /opt/apache-tomcat-7.0.61/bin/bootstrap.jar:/opt/apache-tomcat-7.0.61/bin/tomcat-juli.jar
    

    如果您已将命令添加到 setenv.sh 文件,请使用命令 bash catalina.sh start 启动服务器。 bash catalina.sh stop 用于停止它。如果您不在它们的目录中,则需要使用 .sh 文件的路径。


    据我所知,这是不可能的。 每当一个 .war 文件被放到 appBase 中时

    1. 如果 autoDeploy 属性为“true”,则应用程序将在 Tomcat 服务器运行时自动部署
    2. 否则,应用程序将在Tomcat服务器启动时部署

      bash /opt/apache-tomcat-7.0.61/bin/shutdown.sh

      bash /opt/apache-tomcat-7.0.61/bin/startup.sh

      将关闭并再次启动服务器,并且将部署 appBase 中的所有 .war 文件。

    我能看到需要部署实际命令的唯一实例是使用客户端部署程序包时。有关 Tomcat 部署的更多信息,请访问:https://tomcat.apache.org/tomcat-8.0-doc/deployer-howto.html

    【讨论】:

      猜你喜欢
      • 2011-09-07
      • 1970-01-01
      • 2020-06-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-19
      • 1970-01-01
      相关资源
      最近更新 更多