我是否可以使用JBoss CLI工具报告导致部署失败的异常?

时间:2014-02-21 21:34:32

标签: deployment jboss jboss7.x error-reporting command-line-interface

我正在使用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>]"]}}}

2 个答案:

答案 0 :(得分:0)

虽然您可以将邮件服务与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

答案 1 :(得分:0)

如果使用Maven Wildfly Deployment,它会将错误输出到日志中。然后,您只需让CI工具通过电子邮件发送故障日志。