[英]Adding a processor after unmarshaling in apache camel
我有如下所示的駱駝路線設置。
在stage
文件夾中,我可以看到消息正確地編組為json。
但在此行上取消編組時body.setA("modified A");
我得到一個空指針異常,基本上主體為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");
您的身體很可能為空的原因是由於解組呼叫的配置。 為了取消編組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");
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.