qinglangee
2010-05-11 08:56
浏览 269
已采纳

怎样让struts2打印错误堆栈?

使用struts2时,如果dao部分产生错误,错误堆栈不是在Eclipse的控制台窗口打印,而是在struts2自定义的错误页面显示。(struts.devMode=true)
如何设置让它在Eclipse的控制台窗口打印,这样可以快速定位。

以上这个不是主要问题,更严重的是在调用了自己写的拦截器后,
dao中的错误会被包装,然后根本不打印错误信息
只会在拦截器的 return invocation.invoke(); 语句报空指针异常,这样根本就无法定位错误的位置
怎样设置能让它打印出所有的原始错误堆栈呢

  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

4条回答 默认 最新

  • 拽拽的初行者 2010-05-11 09:26
    已采纳

    [code="java"]


    true

    [/code]

    已采纳该答案
    评论
    解决 无用
    打赏 举报
  • 拽拽的初行者 2010-05-11 08:59

    struts.devMode=false

    并且在Interceptor Stack的配置中,去掉 ExceptionInterceptor。

    (不建议这样做。)

    评论
    解决 无用
    打赏 举报
  • 拽拽的初行者 2010-05-11 09:12

    ExceptionInterceptor默认位于defaultStack的顶部,它能够捕捉到后续所有的异常,然后根据你的Sturts的配置文件,找到与 该类型的Exception匹配的result,然后转向到这个result。

    是一项很好的功能,所以不建议去掉!

    参考官方文档:

    [url]http://struts.apache.org/2.1.8.1/docs/exception-interceptor.html[/url]

    评论
    解决 无用
    打赏 举报
  • qwe_rt 2010-05-11 09:48

    自定义拦截器堆栈(如下代码)。这样定义自己的堆栈后,在action中使用自己的拦截器堆栈myStack

    [code="xml"]













    dojo..*



    input,back,cancel,browse


    input,back,cancel,browse

    [/code]

    解释下:上面是将默认拦截器堆栈defaultStack里的 拦截器去掉。

    这样所有的异常在Eclipse控制台显示。

    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题