将 InputStreamCache 转换为 POJO

Converting InputStreamCache to POJO

我正在尝试将 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 是否可以实现相同的功能。

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

请参阅http://camel.apache.org/json将 Jackson 与 Camel 的类型转换器集成

部分