gpt4 book ai didi

deployment - 我可以让 JBoss CLI 工具报告导致我的部署失败的异常吗?

转载 作者:行者123 更新时间:2023-12-01 06:30:51 27 4
gpt4 key购买 nike

我正在使用 JBoss 7.1.3.Final。使用 CLI 工具部署时,是否可以同时输出导致部署失败的日志中发生的异常?我们运行自动化的夜间部署,我希望能够在电子邮件中报告异常,而不是强制人们登录机器并查看服务器日志。这是我目前正在做的事情……

$ $JBOSS_HOME/bin/jboss-cli.sh --file=/tmp/my.cli

其中“my.cli”的内容是
connect
deploy --force /tmp/my.war

但是,现在在通用线上报告的是
{"JBAS014653: Composite operation failed and was rolled back. Steps that failed:" => {"Operation step-2" => {"JBAS014671: Failed services" => {"jboss.web.deployment.default-host./my" => "org.jboss.msc.service.StartException in service jboss.web.deployment.default-host./my: JBAS018040: Failed to start context"},"JBAS014771: Services with missing/unavailable dependencies" => ["jboss.deployment.unit.\"my.war\".jboss.security.jacc Missing[JBAS014861: <one or more transitive dependencies>]"]}}}

最佳答案

虽然您可以使用 Jboss 的邮件服务(herehere),但我不知道您如何从 jboss-cli 合并.所以我的偏好是在你手上负责发送邮件!

我假设你的 jboss正在运行 linux服务器:

当您运行部署命令时,将输出放入一个 shell 变量(如果它返回的话)。例如:

deploy_response = $( $JBOSS_HOME/bin/jboss-cli.sh --file=/tmp/my.cli )

或者,如果将日志写入日志文件,则将最后几行(您知道发生错误时通常会写入多少行)读入变量。
## readling last 3 lines and joining them into one line
deploy_response = $( tail -n3 /your/log/file.log | tr "\\n" " ")

现在,您已经掌握了部署响应。检查那里的错误消息。通常 Jboss 错误使用这种格式 JBASxxxxxx .所以这对于检测 jboss 错误很有用。
## if [[ $deploy_response == *Composite operation failed* ]]
if [[ $deploy_response =~ JBAS\d\d\d\d\d\d ]]
then
## assuming you have send mail is configured.
echo $deploy_response | mail -s "jboss deployment error" admins@localdomain.com
fi

关于deployment - 我可以让 JBoss CLI 工具报告导致我的部署失败的异常吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21945637/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com