现在的位置: 首页 > 综合 > 正文

被was坑惨了,websphere下面报webapp.WebApp logError SRVE0293E: [Servlet Error]-[null]错误。

2018年01月31日 ⁄ 综合 ⁄ 共 961字 ⁄ 字号 评论关闭

具体报错信息如下:

 

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

 

抱歉!评论已关闭.