我正在尝试在运行时将一个变量传递给我的应用程序,以配置我的外部配置文件存储的位置。
我需要外部配置文件,这样配置就可以更改,而不必在每次配置更改时部署新版本,并且希望能够在运行时定义这些配置的位置,以便应用程序更加可移植,部署应用程序的团队可以按照现有的规则存储配置。
我读过这样的答案:How to add custom "-Djava" arguments to Grails app? --但我不知道这与我有什么关系,从我的本地机器上的war文件到在传入param的情况下部署它。我一直在使用简单地选择要上传的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"发布于 2015-09-01 15:28:39
编辑
结果表明,在启动tomcat服务器时(或之后),而不是在部署应用程序时,您应该传递运行时参数。
所需的命令是:
export CATALINA_OPTS="-DconfigLocation=/usr/share/tomcat5/.grails/TAPaS/"或者任何你想要的价值观。
这可以在服务器启动后手动输入,也可以在CATALINA_HOME目录中创建包含该命令的CATALINA_HOME文件。这可以通过echo $CATALINA_HOME找到。另一种找到它的方法是使用下面的start命令,并查看响应。
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中时
bash /opt/apache-tomcat-7.0.61/bin/shutdown.sh
bash /opt/apache-tomcat-7.0.61/bin/startup.sh
将关闭服务器并再次启动服务器,并且将部署appBase中的任何appBase文件。我能看到的唯一实例是在使用包时需要部署一个实际的命令。有关Tomcat部署的更多信息,请参见:https://tomcat.apache.org/tomcat-8.0-doc/deployer-howto.html
https://stackoverflow.com/questions/32328380
复制相似问题