Apache Camel에서 REST 서비스를 노출하고 SOAP 서비스를 호출하기 위해 입력 한 다음 JSON에 SOAP 응답을 마샬링하고 싶습니다. 내 RouteBuilder이는 대충 다음과 같다 : 이런 일이 왜 기본적으로 스트림 캐싱을 설정 한대로Apache camel은 InputStreamCache에서 JSON으로 마샬링 할 수 없습니다.
com.fasterxml.jackson.databind.JsonMappingException: No serializer found for class org.apache.camel.converter.stream.InputStreamCache and no properties discovered to create BeanSerializer (to avoid exception, disable SerializationFeature.FAIL_ON_EMPTY_BEANS)
at com.fasterxml.jackson.databind.JsonMappingException.from(JsonMappingException.java:275)
at com.fasterxml.jackson.databind.SerializerProvider.mappingException(SerializerProvider.java:1110)
at com.fasterxml.jackson.databind.SerializerProvider.reportMappingProblem(SerializerProvider.java:1135)
at com.fasterxml.jackson.databind.ser.impl.UnknownSerializer.failForEmpty(UnknownSerializer.java:69)
at com.fasterxml.jackson.databind.ser.impl.UnknownSerializer.serialize(UnknownSerializer.java:32)
at com.fasterxml.jackson.databind.ser.DefaultSerializerProvider.serializeValue(DefaultSerializerProvider.java:292)
...
내가 알고 : JSON으로 결과를 정렬 화하고있을 때
rest("/api")
.get("/client/{id}")
.to("direct:getClient");
from("direct:getClient")
.log(LoggingLevel.INFO, "Getting client with id ${id}")
.process(new GetClientProcessor())
.marshal().jaxb()
.to("spring-ws:http://localhost:9000/searchClient?soapAction=search")
.process(new ClientProcessor())
.marshal().json(JsonLibrary.Jackson);
나는 다음과 같은 오류가 발생합니다. 그러나 스트림 캐싱을 끄지 않고 이것을 수정하는 방법을 모르겠습니다.
나는 카멜 문서, 메일 링리스트 및 포럼을 통해 검색했지만 유용한 정보를 찾지 못했습니다.