2014-01-10 2 views
0

apache camel 2.12.1을 사용하고 있으며 여러 개의 onException 문에 문제가 있습니다. 내 ErrorHandler를 제대로 호출 콩 처리 (올바른 방법 바인딩) 동안의 경우 Exception1 또는 Exception2에서apache camel : 모호한 메소드 호출 가능 : JmsMessage

<onException redeliveryPolicyRef="redeliveryPolicy1"> 
    <exception>com.somePackage.Exception1</exception> 
    <handled> 
     <constant>true</constant> 
    </handled> 
    <bean ref="errorHandler" /> 
</onException> 


<onException redeliveryPolicyRef="redeliveryPolicy2"> 
    <exception>com.somePackage.Exception2</exception> 
    <handled> 
     <constant>true</constant> 
    </handled> 
    <bean ref="errorHandler" /> 
</onException> 


<onException redeliveryPolicyRef="redeliveryPolicy3"> 
    <exception>java.lang.Exception</exception> 
    <handled> 
     <constant>true</constant> 
    </handled> 
    <bean ref="errorHandler" /> 
</onException> 

<bean ref="bean1" /> 
<bean ref="bean2" /> 
<bean ref="bean3" /> 

가 발생했습니다처럼 내 경로 보인다. 그러나 어떤 다른 경우에는 bean2가 SomeOtherException을 throw한다고 가정 해 봅시다. 마지막 onException 문에 문제가 있습니다.

내가 오류는 :

모호한 방법 가능한 호출 : Bean2.method1 (FOO1) Bean2.method2 (FOO2), Bead2.method3 (Foo3)]. 교환 [JmsMessage [JmsMessageID :]]

아마도 낙타는 나의 클래스 Foo1, Foo2 대신 JmsMessage 인 Exchange를 가져옵니다. 어떻게 해결할 수 있을까요?

답변

1

당신은 마지막 onException에서와 같이, 그 모호한가

이 변경

<bean ref="errorHandler" /> 

방법을 포함하는 속성 때 호출하는 방법 낙타를 알 수

<bean ref="errorHandler" method="nameOfMethodToCall" />