我有一个骆驼路线设置如下所示
在stage
文件夹中,我可以看到消息正式编组到json中
但是在这一行上取消编组body.setA("modified A");
我得到一个空指针异常,基本上body是null .. 为什么?
from("direct:stage").marshal().json(JsonLibrary.Gson)
.to("file://stage");
from("file://stage").unmarshal().json(JsonLibrary.Gson)
.process(new Processor() {
@Override
public void process(Exchange exchange) throws Exception {
MyTest body = exchange.getIn().getBody(MyTest.class);
body.setA("modified A");
}
}).to("direct:b");
答案 0 :(得分:0)
你的身体很可能是null的原因是由于unmarshal调用的配置。为了解组json对象,您需要提供字符串需要取消编组的类。我不确定100%如何在DSL中做到这一点,但我之前做过这样的事情如下:
//In my spring context
<dataFormats>
<json id="jack" library="Jackson" unmarshalTypeName="com.fun.model.TestModel"/>
</dataFormats>
//in my routeBuilder
from("")
.unmarshal("jack")
.to("other stuff");