2012-04-17 57 views
5

我有一個REST服務器,它在響應主體中發送JSON。我最近開始閱讀關於Apache Camel。我使用以下方式將請求發送到我的REST服務。Apache Camel:使用駱駝方法隱藏JSON到POJO

from("direct:start").setHeader("token", simple("234da")) 
          .to("http://localhost:8088/foo/bar/?foo1=bar1"); 

現在的反應將是一個JSON,有沒有什麼辦法,我直接用超前的to()一些方法(像這樣)獲得此JSON成一個POJO?

to("http://localhost:8088/foo/bar/?foo1=bar1").toPOJO(); 

我寧願一個非Spring的解決方案。

由於

回答

1

Apache的駱駝提供了一個組件到編組和取消編組POJO和從JSON。

在你的情況,這將是:

from("direct:start").setHeader("token", simple("234da")) 
.to("http://localhost:8088/foo/bar/?foo1=bar1") 
.unmarshal().json(); 

順便說一句,您可能需要配置您的JSON庫,以做到這一點,我建議你去看看the official configuration

2

包括以下dependency-

<dependency> 
     <groupId>org.apache.camel</groupId> 
     <artifactId>camel-jackson</artifactId> 
     <version>2.14.1</version> 
    </dependency> 

定義JSON在RouteBuilder格式接收機類

JacksonDataFormat jsonDataFormat = new JacksonDataFormat(Employee.class); 

另外在routebuilder類使用上述DATAFORMAT如下 -

from("file:C:/inputFolder").doTry().unmarshal(xmlDataFormat). 
     process(new MyProcessor()).marshal(jsonDataFormat). 
     to("jms:queue:javainuse") 

源代碼和更多細節 - Apache Camel - Marshalling/Unmarshalling XML/JSON Data