将InputStreamCache转换为POJO

时间:2017-05-24 10:20:50

标签: apache-camel unmarshalling jbossfuse

我正在尝试将JSON格式的InputStreamCache响应转换为Apache Camel中的POJO,如下所示:

<convertBodyTo type="com.temp.MyPojo"/>

但是,我有以下异常:

No body available of type: model.so.response.MyResponse but has value: 
org.apache.camel.converter.stream.InputStreamCache@3a689bf8 of type: 
org.apache.camel.converter.stream.InputStreamCache on: Message: [Body is 
instance of org.apache.camel.StreamCache]. Caused by: No type converter 
available to convert from type: 
org.apache.camel.converter.stream.InputStreamCache to the required type: 
model.so.response.MyResponse with value 
org.apache.camel.converter.stream.InputStreamCache@3a689bf8. 
Exchange[Message: [Body is instance of org.apache.camel.StreamCache]]. 
Caused by: [org.apache.camel.NoTypeConversionAvailableException - No type 
converter available to convert from type: 
org.apache.camel.converter.stream.InputStreamCache to the required type: 
model.so.response.MyResponse with value 
org.apache.camel.converter.stream.InputStreamCache@3a689bf8]

有什么方法可以使用convertBodyTo组件直接将StreamCache有效负载转换为POJO?我不想写一个显式的转换器。

<小时/> 注意:我知道unmarshal组件。我想确认是否可以使用convertBodyTo实现相同的功能。

1 个答案:

答案 0 :(得分:2)

你需要添加camel-jackson作为依赖,因为如果你打开它,它有能力从JSon有效负载转换为POJO。

请参阅http://camel.apache.org/json 将Jackson与Camel的TypeConverters集成

部分