Apache Camel - Marshal WrappedInputStream与POJO与杰克逊

时间:2017-10-10 11:13:11

标签: java json jackson apache-camel

我正在开发一个带有丰富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的

0 个答案:

没有答案