websphere下面报webapp.WebApp logError SRVE0293E: [Servlet Error]-[null]错误。

阅读更多

具体报错信息如下:

webapp E com.ibm.ws.webcontainer.webapp.WebApp logError SRVE0293E: [Servlet Error]-[null] : com.ibm.ws.webcontainer.webapp.WebAppErrorReport: 
at com.ibm.ws.webcontainer.webapp.WebAppDispatcherContext.sendError(WebAppDispatcherContext.java:624) 
at com.ibm.ws.webcontainer.srt.SRTServletResponse.sendError(SRTServletResponse.java:1071) 
at org.apache.struts2.dispatcher.Dispatcher.sendError(Dispatcher.java:770) 
at org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:505)

谁能看明白这个错误信息的含义?反正我是被坑了,网上也找不到答案。

现在我知道是什么原因了,让我来总结一下:

第一,有个关键信息是WebApp,说明它是应用端自身的一个error

第二,报错的地方不明确,websphere上调试也极为不方便(太耗时间了),通过打印日志的方式,定位到了错误所在的行。

( 不过很是蹊跷, 那一行既然报错了,但是为什么没有被外层的try-catch捕获呢?,而且那一行看起来没有问题啊 ! )

哦,我好想明白了, 是try-catch捕获的力度不够,错误的等级比Exception还要高,也就是说要用Throwable错误 ,赶紧试试看!

没错,事实证明了,是个Throwable类型的错误,因为我改动了接口类而没有更新class文件,导致暴出了一个Throwable类型的错误!

这真的是被坑惨了………… 总结经验:

1、有些地方要用Throwable来捕捉错误。(看具体的情况,是否引用了接口,但是又找不到实现类?)

2、日志记录要全面,便于定位问题。为了避免每次都要修改代码,可以事先设置较全面的日志,上线时关闭,调试时可打开(开关放在数据库中)。

你可能感兴趣的:(Throwable)