当前位置: 首页 > 知识库问答 >
问题:

异常和未找到转换时的全局转换

终睿
2023-03-14

我有3个spring web流——流1、流2、流3。flow2和flow 3已按如下方式指定父flow1:

<flow xmlns="http://www.springframework.org/schema/webflow"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://www.springframework.org/schema/webflow
http://www.springframework.org/schema/webflow/spring-webflow-2.0.xsd"
  parent="flow1">

在流1中,我有一个全局转换和一个结束状态:

<end-state id="flowInterrupted" view="flowInterruptedPage"/>

<global-transitions>
    <transition on-exception="com.core.exceptions.policy.InvalidPolicyContactException" to="flowInterrupted">
        <evaluate expression="webFlowService.clearCurrentInterruptCause()"/>
    </transition>
</global-transitions>

在我的应用程序中的某个时刻,在flow2中,子流flow3被称为

<subflow-state id="stateInFlow2WhereSubFlow3IsDefined" subflow="flow3">

</subflow-state>

,在流程3中,抛出了一个InvalidPoleyContactException。它在流程1中被正确地找到(因为它的目的是清除货币中断原因()),但后来抛出了一个异常,即在流程2中没有找到流程中断的转换-这是真的,因为它在流程1中(定义了全局转换)。这是例外:

org.springframework.webflow.engine.NoMatchingTransitionException: No      transition found on occurence of event 'flowInterrupted'  in state 'stateInFlow2WhereSubFlow3IsDefined' of flow 'flow2' -- valid transitional criteria are array<TransitionCriteria>[exit, contactSelected] -- likely programmer error, check the set of TransitionCriteria for this state at org.springframework.webflow.engine.TransitionableState.getRequiredTransition(TransitionableState.java:93) at org.springframework.webflow.engine.TransitionableState.handleEvent(TransitionableState.java:119)
at org.springframework.webflow.engine.SubflowState.handleEvent(SubflowState.java:116)
at org.springframework.webflow.engine.Flow.handleEvent(Flow.java:555)
at org.springframework.webflow.engine.impl.FlowExecutionImpl.handleEvent(FlowExecutionImpl.java:388)
at org.springframework.webflow.engine.impl.RequestControlContextImpl.handleEvent(RequestControlContextImpl.java:210)
at org.springframework.webflow.engine.impl.FlowExecutionImpl.endActiveFlowSession(FlowExecutionImpl.java:412)
at org.springframework.webflow.engine.impl.RequestControlContextImpl.endActiveFlowSession(RequestControlContextImpl.java:238)

当我将end state id=“flowInterrupted”更改为view state时,它可以正常工作。当从其他流调用它时,将flow1作为父流的流也可以正常工作。当我从flow3中删除parent=flow1时,我不会发现全局转换的例外。唯一的问题是,当从子流引发异常时。

任何帮助都将不胜感激——我当然可以将流程中断状态放入流程2并解决问题,但我想了解为什么会发生这种情况

谢谢

共有1个答案

赵珂
2023-03-14

添加

 类似资料:
  • 我正在使用Spring Boot开发一个应用程序,在这里我实现了身份验证和授权。这是我的角色实体 Rold id在BaseModel中。我想从数据库中获取所有角色,为此我在RoleRepository中编写了一个方法,如下所示 但这又让我犯了这个错误 org . spring framework . core . convert . converternotfoundexception:未找到能够

  • 客户端对象如下所示: 我得到以下异常: org.springframework.core.convert.converterNotFoundException:找不到能够从java.lang.String类型转换为@org.springframework.messaging.handler.annotation.destinationvariable java.util.list类型的转换器 我有

  • 我有这门课: 这个问题: 但我有这个错误

  • 问题内容: 在使用Hibernate 4.0.0 CR7迁移到Spring Framework 3.1.0 RC1之后,出现以下异常 2011-12-08 / 11:48:38.425 / EST [Thread-17]错误上下文初始化失败org.springframework.beans.factory.BeanCreationException:创建名称为org.springframework

  • 我想做张桌子。我希望这些数字向左对齐。我不熟悉格式化,不知道为什么会出现错误。

  • 我得到了一个简单的响应,并希望将其映射为一个pojo: 但我只是得到以下例外。可能遗漏了什么? 组织。springframework。网状物客户RestClientException:无法提取响应:未找到响应类型[class JsonEntity]和内容类型[application/octet stream]的合适HttpMessageConverter