2012-04-17 33 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