2013-06-07 1 views
1

생성자를 통해 주입 된 종속성을 사용하여 blueprint.xml 파일에 설정된 TypeConverter 클래스가 있습니다. OSGI 번들을 FuseESB에 배포 할 때 클래스가 생성되었는지 확인할 수 있습니다.종속성 삽입이있는 낙타 형식 변환기가 인스턴스화에 실패합니다

나는 낙타 컨텍스트

<convertBodyTo type="com.example.RegisterRequest" /> 

convertBodyTo 요소를 사용하여 형식 변환기를 적용하지만 다음 A noarg 생성자를 추가하면 컨버터

Caused by: java.lang.InstantiationException: com.example.RegisterRequestConverter 
    at java.lang.Class.newInstance0(Class.java:359)[:1.7.0_21] 
    at java.lang.Class.newInstance(Class.java:327)[:1.7.0_21] 
    at org.apache.camel.util.ObjectHelper.newInstance(ObjectHelper.java:1166) 

를 구성 할 때이 인스턴스화 예외와 함께 실패 변환기가 생성되지만 분명히 종속성은 없습니다.

형 컨버터 http://camel.apache.org/type-converter.html의 낙타 문서는

정적 방법은 캐싱을 줄이기 위해 권장한다고하지만, 인스턴스 메소드 는 변환기를 사용자 정의 옵션으로 의존성을 주입을 허용 할 경우 특히, 괜찮

xml을 통해 라우트를 정의 할 수 있고 여전히 유형 변환기 종속성을 주입 할 수 있습니까?

답변

4

아니요. 불가능합니다. A 형 컨버터는 하나

  • 정적 메서드
  • 는 등의 IoC를하려는 경우

그리고하지가 IOC의를 사용하는 인수 없음의 public 생성자 등

당신이 필요로하지 않을 것이다 가지고 있어야한다 Camel TypeConverterRegistry에 인스턴스를 수동으로 등록합니다. 이 작업은 약간 번거로울 수 있습니다.

+0

내가 청사진 xml 대신 Java에서 이것을해야한다고 가정하는 것이 맞습니까? – blank

+0

네 맞습니다. –

관련 문제