公司目前有个功能需要,需要使用Springboot+Apache Camel的Rest组件集成实现类似ESB(服务总线的功能),使用的配置方式是xml dsl,配置信息如下:
但由于本人之前没有怎么深入了解过Apache Camel的使用,在调用目前的服务的过程中,出现以下的错误信息:
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)
其实从信息可得知,问题就出现在Json数据对象转换的过程,无法实现转换。
后来我再使用一个接口是返回字符数据的接口,调用是没有问题的。配置文件的信息如下:
问题就很明显了,是Camel的组件拿到了接口的数据后无法进行转换(本人也没有找到在xml dsl中有那个属性是可以直接转换的,在Rotue中配置了一个
<camel:convertBodyTo type="String"></camel:convertBodyTo>
然并卵,如果是代码的话,自己还可以直接转换,xml dsl只有配置文件,属性也在看文档中,如有大侠弄过类似的功能开发欢迎在下方评论区指点一二。非常感谢!