使用Spring WebFlow Flow处理全局异常。
我正在Spring webflow项目中工作,我想知道是否有人知道如何在流中添加某种类型的全局异常处理,所以如果我的任何java调用抛出一个示例它将会进入并引入整个系统的错误系统相同?
我的旧流程解决了一个问题:
<var name="member" class="xxxx" />
<decision-state id="checkIsInPending">
<if test="flowControllerActions.isInPending(member)" then="endStateMemberPending" else="name" />
</decision-state>
一旦我将全局添加到其中,我就开始出错了。
<var name="member" class="xxxxx" />
<global-transitions>
<transition on-exception="java.lang.Exception"
to="SystemException" />
</global-transitions>
<decision-state id="checkIsInPending">
<if test="flowControllerActions.isInPending(member)" then="endStateMemberPending" else="name" />
</decision-state>
这是我的错误:
org.xml.sax.SAXParseException; lineNumber: 29; columnNumber: 40; cvc-complex-type.2.4.a: Invalid content was found starting with element 'decision-state'. One of '{"http://www.springframework.org/schema/webflow":on-end, "http://www.springframework.org/schema/webflow":output, "http://www.springframework.org/schema/webflow":exception-handler, "http://www.springframework.org/schema/webflow":bean-import}' is expected.
答案 0 :(得分:1)
您可以使用global-transitions来捕获异常:
<global-transitions>
<transition on-exception="example.MyBusinessException" to="state3"/>
</global-transitions>
有关详细信息,请参阅:the documentation
答案 1 :(得分:1)
尝试重新排列XML标记。您收到此异常是因为您的流XML不符合XSD。 Myabe最终将全球转型放在了最后