2013-12-11 100 views
0

我正在開發REST服務。我可以使用Apache CAMEL來支持XML和JSON格式嗎?我對如何使用Apache CAMEL沒有多少了解。如果有人知道任何例子,你能指點我嗎?支持XML和JSON的Apache Camel Web服務

回答

0

你只需要使用Camel HTTP Endpoint與駱駝的JSON support。這兩個資源中的代碼和配置示例應該會幫助您。

請注意,對於使用JSON的純REST服務,您還有其他選項,如RESTEasyJerseyRestlet。駱駝(和Spring Integration等)支持通過Enterprise Integration Patterns消息。當然,REST可能是其中的一部分,但要確保您只需要儘可能多地支持您的需求。

+0

我無法理解所提供的示例。你能指出我在哪裏他們使用CAMEL支持不同的數據格式 – Manoj

+0

試試這個[教程](http://jaxenter.com/tutorial-integrating-with-apache-camel-48211.html)。 – Vidya

0

cxf bean component將嘗試編組對客戶請求的任何響應。一個簡單的「REST路線」可能是這樣的:

<camel:from ref="jettyEndpoint" /> 
<camel:to uri="cxfbean:yourRequestHandler?providers=#jsonJacksonProvider..." /> 

在如引用豆「yourRequestHandler」你可以在你的服務方法使用標準的JAX-WS註釋。例如。

@POST 
@Consumes("application/json") 
@Produces("application/json") 
public ServiceResponse aServiceMethod(ServiceResponse response) { 
    // Do whatever is required to gather the information for the response here... 
    // Then create response object, will be marshaled according to annotation 
    ServiceResponse response = new ServiceResponse(); 
    return response; 
} 

我不知道,如果你需要提供單獨的服務的方法來產生JSON和XML,或者如果你可以在一個去做。我們總是隻生成一種格式,在這種情況下,cxfbean將自動編組爲註釋格式。不過您可能需要提供所需的提供者。例如。如果您對標準JSON提供程序不滿意,而想要使用Jackson,那麼您可以通過提供您自己的方式來覆蓋默認提供程序,如上面的cxfbean URI。

請注意,如果您在cxfbean步驟之後添加路由步驟,那麼交換機構將包含已按客戶端請求格式封送的響應對象。