记录解决自动部署系统的发布不成功的问题

此文已由作者叶富宏授权网易云社区发布。

欢迎访问网易云社区,了解更多网易技术产品运营经验。


 今天需求提测遇到件怪事,QA在测试环境发布我提交的分支后,不能打开页面。第一感觉是QA发布过程出问题了,因为我本地测过没有问题才提测的。经过接下来的一系列验证,该分支本地依旧能发布成功并且访问,测试环境确实有问题!

   自动部署系统确实方便,一键发布,但是出问题就比较慌了。下面是我查找问题的过程记录一下,不希望大家遇上这种问题,如果遇上了,希望对大家有借鉴的作用。

   首先我查看了一下,测试环境的发布日志:

记录解决自动部署系统的发布不成功的问题_第1张图片

看到日志的时候,心里也是有点虚,查了一下“Illegal access: this web application instance has been stopped already”,发现这个异常的原因:是在关闭应用服务器或重新部署装载项目失败会发生。当应用程序卸载时,并不会关闭所有的线程。当tomcat已经关闭了其类加载器后,一些线程依然会继续运行,这样就导致出错,这些错误就会被到日志文件里。(http://blog.sina.com.cn/s/blog_7fd593970101eyqt.html)也就是说这段日志其实毛用都没有。

继续往上查看日志发现:

记录解决自动部署系统的发布不成功的问题_第2张图片

发现有个Error,但是没有关于这个Error的任何信息。

97f8baae-f311-42e1-b96b-cd56dd63db00

根据这个错误信息,在网上搜索了一下,找到了两篇文章,介绍如何把错误信息详细打印出来:

http://stackoverflow.com/questions/12873674/org-apache-catalina-core-standardcontext-startinternal-severe-error-listenersta http://grails.1312388.n4.nabble.com/Deployment-problems-td4628710.html

方法:在WEB-INF/classes目录下新建一个文件叫logging.properties,内容如下:



handlers = org.apache.juli.FileHandler, java.util.logging.ConsoleHandler

org.apache.juli.FileHandler.level = FINE

org.apache.juli.FileHandler.directory = ${catalina.base}/logs

org.apache.juli.FileHandler.prefix = servlet-examples.

java.util.logging.ConsoleHandler.level = FINE

java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter

照着试了一下,发现确实有效,错误信息如下,其实只要错误打印信息出来了,问题也就解决了。

记录解决自动部署系统的发布不成功的问题_第3张图片



最后的问题是:开发过程中新增了一个dubbo接口,在本地的配置文件里面有接口group的配置,但是在测试环境的配置文件里面忘记了加上。

其实最开始的时候心里也知道大概是测试环境的配置文件有问题(因为本地是正常的),也对配置文件进行了检查,不过各种配置项太多了,最终还是没有找到问题。

虽然最后找到的问题原因有些乌龙,不过也算是一次不错的经历。


免费体验云安全(易盾)内容安全、验证码等服务

更多网易技术、产品、运营经验分享请点击。


相关文章:
【推荐】 邪恶的三位一体:机器学习、黑暗网络和网络犯罪
【推荐】 数据分析思路的套路攻略
【推荐】 使用Phaser开发你的第一个H5游戏(一)

你可能感兴趣的:(记录解决自动部署系统的发布不成功的问题)