2013-04-09 2 views
0

У меня есть обработчик excepton на уровне WebFlowобработчика исключений не ловит исключение

<exception-handler bean="webflowExceptionHandlerBean"/> 

Также у меня есть два разных потоков, поток A и поток B. Поток B является суб-потоком поток А.

течь

<flow> 
    <on-start> 
    <!-- SOME SET --> 
    </on-start> 
    <view-state id="viewStateA"> 
    <transition id="goToFlowB" to="flowB"/> 
    </view-state> 
    <subflow-state id="flowB" subflow="flowB"> 
    </subflow-state> 
</flow> 

Поток Б

<flow> 
    <on-start> 
    <!-- SOME SET --> 
    </on-start> 
    <view-state id="flowB"> 
    <on-entry> 
    <!-- HERE THE EXCEPTION IS THROWN --> 
    </on-entry> 
    <transition id="goToT1" to="t1"/> 
    </view-state> 
</flow> 

Таким образом, когда возникает исключение в на входе потока B, не поймать на webflowExceptionHandlerBean

Конфигурация webflowExceptionHandlerBean реализует FlowExecutionExceptionHandler

Я пробовал использовать , и это сработало, но я использую только один глобальный excepti на обработчике на каждом потоке.

Знаете ли вы, что случилось? Я что-то упустил?

ответ

0

Есть абстрактное определение потока, как показано ниже

<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" abstract="true"> 
<exception-handler bean="webflowExceptionHandlerBean"/> 
</flow> 

Тогда наследуют абстрактный поток в ваш поток A и поток B, как показано ниже

<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="abstract-flow"> 

Вы должны быть в состоянии глобально обрабатывать ваши исключения, используя пользовательский обработчик исключений