我正在开发一个带有丰富EIP的Apache Camel Route。我正在调用Web服务并尝试将响应转换为Pojo。这是我的代码段。
from("direct:getDetailDominio")
.setHeader(Exchange.HTTP_PATH, simple("${body.principale}"))
.setBody(constant(null))
.to("http4:" + dominiUrl + "?bridgeEndpoint=true&throwExceptionOnFailure=false")
.marshal().json(JsonLibrary.Jackson)
事实是,服务调用后的Body被包装到WrappedInputStream中,并且Jackson libs似乎不知道如何映射该Object。错误是:
com.fasterxml.jackson.databind.JsonMappingException: No serializer found for class org.apache.camel.converter.stream.CachedOutputStream$WrappedInputStream and no properties discovered to create BeanSerializer (to avoid exception, disable SerializationFeature.FAIL_ON_EMPTY_BEANS) )
我知道我可以将主体转换为String.class然后转换POJO,但我拒绝认为没有一种标准方法来处理这种情况。 你有什么建议吗? 谢谢, Alessio的