2016-10-14 4 views
0

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); 

나는 다음과 같은 오류가 발생합니다. 그러나 스트림 캐싱을 끄지 않고 이것을 수정하는 방법을 모르겠습니다.

나는 카멜 문서, 메일 링리스트 및 포럼을 통해 검색했지만 유용한 정보를 찾지 못했습니다.

답변

0

마지막으로 해결했습니다. 문제는 글로벌 나머지 구성 오히려 설명 루트와는 아무 상관이 없었 :

RestConfiguration restConfiguration = new RestConfiguration(); 
restConfiguration.setComponent("servlet"); 
restConfiguration.setBindingMode(RestConfiguration.RestBindingMode.json); 
restConfiguration.setHost("localhost"); 
restConfiguration.setPort(serverPort); 

camelContext.setRestConfiguration(restConfiguration); 

세 번째 라인은, 바인딩 모드를 설정, 나는 또한 JSON과 매핑하고 싶습니다 때 명시 적으로 상태로 불필요을하는 내가 사용하는 프레임 워크. 이 줄을 제거한 후에 모든 것이 매력처럼 작동합니다.

현재이 문제가 어떻게 또는 왜 내 문제를 해결했는지 정확히 알 수는 없지만 만족 스럽습니다.)

관련 문제