【问题标题】:Struts2 Global Exception - Original Exception SourceStruts2 全局异常 - 原始异常源
【发布时间】:2015-08-10 12:53:36
【问题描述】:

我在 Struts 2 中使用全局异常映射如下:

<global-exception-mappings>
    <exception-mapping exception="java.lang.Exception" result="exception" />
</global-exception-mappings>

<!-- ******* ACTIONS ******  -->
<action name="timeout" class="errorAction">
    <interceptor-ref name="carsBasic" />
    <interceptor-ref name="defaultStack" />
<result name="input">/WEB-INF/jsp/index.jsp</result>
</action>

流程很完美,但我想知道如何获取引发异常的 Action(希望是方法)。

timeOut 动作类的执行方法中,它正确添加了一个 actionMessage 指示“错误”,但在这里我想添加记录/通过电子邮件发送给我的代码以显示有问题的类和方法.

这是否存储在某个地方,我如何访问它?

【问题讨论】:

    标签: java configuration exception-handling struts2 stack-trace


    【解决方案1】:

    要记录异常,您需要使用一些记录器,例如 log4j。可以配置一些允许发送电子邮件的附加程序。

    当异常发生并由exception 拦截器处理时,它将值存储到值堆栈中。值已存储:

    • exception: 异常对象本身
    • exceptionStack:堆栈跟踪中的值

    您可以配置将处理异常的操作并记录这些值以从值堆栈中检索它们,并配置一个全局结果以在处理异常时执行。此结果可能是 chain 类型,其中上一个操作的值在下一个操作的值堆栈中。

    <global-results>
        <result name="exception" type="chain">ExceptionAction</result>
    </global-results>
    

    【讨论】:

    • 就是这样!谢谢!正是您看到的“链”结果类型丢失了我需要的所有信息。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-11-03
    • 1970-01-01
    • 1970-01-01
    • 2015-12-21
    • 2011-09-29
    • 2011-06-17
    相关资源
    最近更新 更多