2014-05-16 2 views
0

들어오는 메시지를 XML로 직렬화하려고합니다. 저는 camel-example-cxf-osgi 예제부터 시작합니다.Camel cxf : 들어오는 메시지를 XML로 마샬링하는 방법?

내 노선 :

JaxbDataFormat jaxb = new JaxbDataFormat(); 

from("cxf:bean:reportIncident") 
.convertBodyTo(InputReportIncident.class) 
.marshal(jaxb) 
.bean(new MyBean2()) 
.transform(constant(ok)); 

하지만 오류가있어 내가 손해를보고있어 :

java.io.IOException: javax.xml.bind.JAXBException: class org.apache.camel.example.reportincident.InputReportIncident nor any of its super class is known to this context. 

어떤 도움을 주셔서 감사합니다. 고마워. 당신이

DataFormat jaxb = new JaxbDataFormat("com.acme.model"); 

처럼 JAXB 클래스, 뭔가를 유지 곳

+0

업데이트 : "문제"가 신비하게 해결되었습니다. 이제는 객체가 자동으로 XML로 변환됩니다. 이전에는 언급하지 않았지만 자동으로 문자열로 변환하는 단계를 적용 할 때 변환 예외가 발생했습니다. 지금 나는 좋은 XML 승/O를하고있어 아무것도 할 필요가있다. 사과, 나는 내가 한 일에 대해 잘 모르겠다. 나는 아직도 카멜에게 비교적 새로운 사람이다. –

답변

1

당신은 예외가 JAXB 컨텍스트 클래스 InputReportIncident.class를 마샬링하는 방법을 알고하지 않는 것을 말한다 패키지로를 가리 키도록해야합니다. 더 ObjectFactory 클래스가없는 경우

2

또한 다니엘의 솔루션으로, 당신은이 편리

final JAXBContext jaxbContext = JAXBContext.newInstance(InputReportIncident.class); 
final DataFormat jaxb = new JaxbDataFormat(jaxbContext); 

를 사용할 수 있습니다. 이 주제에 대한보다 일반적인 정보는 Jaxb: How do I generate ObjectFactory class?을 참조하십시오.

관련 문제