2016-10-13 8 views
0

apiKit 라우트 된 메시지를 처리 ​​할 때 내 뮬 메시지에서 중요한 데이터의 유효성을 검사하기 위해 유효성 검사 구성 요소를 사용하고 있습니다.Mule apiKitGlobalExceptionMapping ValidationException throw되지 않음

api 키트 전역 예외 구성 요소에서 catch 할 수있는 예외 클래스가 생성 될 것으로 예상했지만 예외는 항상 내 사용자 정의 클래스가 아닌 org.mule.api.MessagingException으로 들어 왔습니다.

api 키트 전역 예외 구성 요소에서 구분되도록 유효성 검사 구성 요소의 예외를 얻으려면 어떻게해야합니까?

여기
package com.comMyAppy.rules; 
import com.comMyAppy.rules.MyAppValidationException; 
import org.mule.api.MuleEvent; 
import org.mule.extension.validation.api.ExceptionFactory; 
import org.mule.extension.validation.api.ValidationResult; 

public class MyAppValidationExceptionFactory implements ExceptionFactory 
{ 

    @SuppressWarnings("unchecked") 
    @Override 
    public <T extends Exception> T createException(ValidationResult result, 
      Class<T> exceptionClass, MuleEvent event) 
    { 
     // TODO Auto-generated method stub 
     return (T) new MyAppValidationException(result, event); 
    } 

    @Override 
    public Exception createException(ValidationResult result, 
      String exceptionClassName, MuleEvent event) 
    { 
     // TODO Auto-generated method stub 
     return new MyAppValidationException(result, event); 
    } 

} 

내 예외 클래스입니다 :

package com.comMyAppy.rules; 
import org.mule.api.MuleEvent; 
import org.mule.config.i18n.Message; 
import org.mule.extension.validation.api.ValidationException; 
import org.mule.extension.validation.api.ValidationResult; 
@SuppressWarnings("serial") 
public class MyAppValidationException extends ValidationException 
{ 

    public MyAppValidationException(ValidationResult validationResult, 
      MuleEvent event) 
    { 
     super(validationResult, event); 
     // TODO Auto-generated constructor stub 
    } 

    @Override 
    protected String generateMessage(Message message) 
    { 
     return "VALIDATION:" + message.getMessage(); 
    } 

} 

내가 뭘 잘못하고 아래에있는 내 검증 예외 구성 요소는 무엇입니까?

+0

note 유효성 검사를 사용하고 있습니다 : 모든 구성 요소 –

+0

유효성 검사 구성을 공유 할 수 있습니까? –

+0

나는 모든 validatior가 던져지기를 원하는 맞춤 예외를 먹고 있다는 것을 알았습니다. –

답변

0

내 문제가 무엇인지 알아 냈습니다. 모든 유효성 검사기 사이의 모든 메시지를 집계 한 유효성 검사 : 모든 구성 요소를 사용하여 효과적으로 유효성 검사 구성을 무시하고 messageException을 던졌습니다. 내 조언 : 모든 유효성 검사기를 피하십시오. 그것은 좋게 들린다, 그러나 당신은 주문 예외 능력을 잃는다.

+0

어떻게 피합니까? 대안을 무엇을 사용 했습니까? –

+0

Hey @ItzHoudini 필자는 모든 유효성 검사기에있는 유효성 검사기를 각각 따로 나열했습니다. 그것은 WISWIG 편집기에서 끔찍한 XML에서 지느러미로 보이지만 적어도 예상대로 작동합니다. –