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

标签 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>]"]}}}

最佳答案

虽然您可以使用 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/

相关文章:

eclipse - 从 Eclipse Indigo 远程调试 JBoss AS 7.1

windows - 为什么 Windeployqt 输出不需要的文件,如何删除它们?

java - JBoss 5.1.0.GA - 重定向到端口 443 不起作用,始终重定向到 8443

java - WildFly 9.0.2 类加载问题

java - spring 和 JBoss7 中的 jndi 查找问题

jboss - JNDI 查找 JBoss Application Server 7

c# - 开发和测试将驻留在 GAC 中的 SDK 的策略

apache - 在不同的端口上部署两个不同的应用程序

deployment - Liferay 部署备份并更改数据库

java - Oracle:如何查看 Java EE 6 应用程序运行了什么查询?