簡體   English   中英

在Apache駱駝解組后添加處理器

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM