springmvc+spring+mybatis+tomcat7 运行一段时候后动态页面访问404

财院神仙 发布于 2017/01/09 10:44
阅读 965
收藏 0

springmvc+spring+mybatis 开发的项目跑在tomcat7上(windows server 2008),运行一段时间后出现动态资源无法访问的情况,不知道什么原因,请求各位大神帮忙看下(项目使用到mysql5.7,redis3.2,都是安装在同一台服务器,服务器内存为4G)

203.87.129.156 - - [08/Jan/2017:11:32:33 +0800] "GET / HTTP/1.1" 404 5
112.198.71.124 - - [08/Jan/2017:11:32:33 +0800] "GET / HTTP/1.1" 404 5
41.215.169.4 - - [08/Jan/2017:11:32:33 +0800] "GET /upload/app/20161110111635118543.apk.jpg HTTP/1.1" 200 1453960
112.215.170.76 - - [08/Jan/2017:11:32:33 +0800] "GET /upload/20161221174745016516.jpg HTTP/1.1" 200 164981
118.69.120.229 - - [08/Jan/2017:11:32:33 +0800] "GET / HTTP/1.1" 404 5
112.206.99.182 - - [08/Jan/2017:11:32:33 +0800] "GET / HTTP/1.1" 404 5
113.175.155.40 - - [08/Jan/2017:11:32:33 +0800] "POST /sdk/advCtrl HTTP/1.1" 200 290
112.198.90.221 - - [08/Jan/2017:11:32:33 +0800] "GET /upload/20170101204552602131.jpg HTTP/1.1" 200 20163

以下是问题补充:

@财院神仙:日志出现的警告信息为:(AbstractHandlerExceptionResolver.java:189) -Resolved exception caused by Handler execution: java.lang.NullPointerException (2017/01/09 11:10)
加载中
1
二哈不是哈
二哈不是哈
抓一个Caused by: 的日志记录能有么?
二哈不是哈
二哈不是哈
叶面访问404错误 那就可能是你的controller层的窄化请求的路径匹配不对,或则视图解析返回的类型出现错误。
0
二哈不是哈
二哈不是哈
AbstractHandlerExceptionResolver.java:189) -Resolved exception caused by Handler execution: java.lang.NullPointerException  
0
财院神仙

引用来自“Zizizizizi”的评论

AbstractHandlerExceptionResolver.java:189) -Resolved exception caused by Handler execution: java.lang.NullPointerException  
问题是没有更多的日志信息,不清楚什么为空?
0
财院神仙

引用来自“Zizizizizi”的评论

抓一个Caused by: 的日志记录能有么?
这个路径是没有问题的,刚开始都可以正常访问,只是跑了一段时间后才这样,出现该问题会,会一直输出日志(一直不间断的输出,一秒好几条)(AbstractHandlerExceptionResolver.java:189) -Resolved exception caused by Handler execution: java.lang.NullPointerException
0
writeademo
writeademo
调试一下不就知道了?
0
财院神仙

引用来自“writeademo”的评论

调试一下不就知道了?
发布了如何调试?开发的时候是没出现这个的情况的。
0
哎码
哎码
不知道你们springmvc是什么版本的,麻烦AbstractHandlerExceptionResolver.java:189截图下这条
0
风翔飞
风翔飞
这样的日志不合格啊,出问题了该如何定位。。。
风翔飞
风翔飞
回复 @财院神仙 : 起码要把堆栈信息打出来啊 一般项目创建自己的异常类来统一处理异常,然后在service里面对业务代码trycatch,状态码都是约定好的,以做统一处理。捕获异常的时候要把出错的类-方法或者业务名称打印出来,还有异常里要包含对应的errorMsg或errorCode,抛出之前logger要把异常堆栈打印出来
财院神仙
回复@风翔飞 : 日志该如何记录呢?请赐教
0
ixiaohei
ixiaohei

我感觉谁删除了war包?

0
财院神仙

引用来自“ixiaohei”的评论

我感觉谁删除了war包?

跟war包没关系,应该是程序负载过大造成的(同时有几千个连接在下载,tomcat根本扛不住),现在加了nginx处理静态资源,观察问题是否重现。
ixiaohei
ixiaohei
负载过大只会503,而不是404.
返回顶部
顶部