我可以使用git(git add,push ...)在OpenShift上部署一个战争,它可以工作。我遇到的唯一问题是我的所有日志都加倍(仅当我在OpenShift上部署时),而本地(使用apache tomcat 7只有log4j框架)所有日志都只记录一次。
在互联网上搜索了一天后,我找到了两种正常解决该问题的方法,即找到如何在OpenShift上禁用/绕过JBoss EWS 2.0日志记录:
在Google上找到的线索
1)将JAVA_OPT添加到启动
现在,启动应用程序服务器时,您需要添加一个JAVA_OPT。此标志将确保JBoss Log Manager不会获取您的日志记录配置,并且您自己的日志记录JAR将正常工作。
./standalone.sh -Dorg.jboss.as.logging.per-deployment=false
现在您的应用程序现在将使用打包的JAR进行日志记录,从而有效地绕过JBoss Logging。
来源:http://blog.jyore.com/?p=234
2)您的部署中看起来有一个log4j配置文件。尝试传递
-Dorg.jboss.as.logging.per-deployment=false
禁用该配置。
- James R. Perkins
来源:https://community.jboss.org/thread/224127
我对这些线索的实施
为了实现这些解决方案,我做了两件事:
1)我创建并git推送以下钩子:
vim .openshift/action_hooks/pre_start_jbossews-2.0
echo "executing pre_start_jbossews-2.0"
# I also tried with JAVA_OPTS
export JAVA_OPTS_EXT="-Dorg.jboss.as.logging.per-deployment=false"
echo "Value is: $JAVA_OPTS_EXT"
注意:这个钩子被很好地触发了,因为在推送修改后服务器重新启动时我可以看到回声。
2)我还在catalina.properties中添加了这一行:
vim .openshift/config/catalina.properties
-Dorg.jboss.as.logging.per-deployment=false
当时的结论:
不幸的是,这些解决方案都没有禁用/绕过JBoss EWS 2.0默认日志记录。 我目前坚持使用双日志行,所以任何帮助都会非常感激,我依靠你们。
非常感谢您的帮助。
答案 0 :(得分:0)
On Openshift设置持久环境值的正确方法是使用rhc
工具:
rhc set-env JAVA_OPTS_EXT=-Dorg.jboss.as.logging.per-deployment=false -a myapp
然后尝试显式停止并启动应用程序(使用rhc stop和rhc start)。