Apache Camelでは、RESTサービスを公開し、SOAPサービスを呼び出すためにその入力を受け取り、SOAP応答をJSONにマーシャリングしたいと思います。私RouteBuilderはおおよそ次のようになります。Apache camelはInputStreamCacheから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);
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)
...
私は、知っています。しかし、私はこのを修正する方法を知らずに、ストリームキャッシングをオフにしません。
私はCamelのドキュメント、メーリングリスト、フォーラムで検索しましたが、有用な情報は見つかりませんでした。