2013-02-01 59 views
0

我想使用apache駝峯調用休息服務。目前我正在使用cxfrs組件來配置我的端點。我的路線看起來象下面這樣:如何使用camel-cxf調用寧靜的Web服務中的方法?

from("cxfrs://http://127.0.0.1:8080/RestServiceApp/?resourceClasses="com.sample.Server.HelloWorld").log("Route Started"); 

我的問題是,我想調用存在於服務器類的方法(HelloWorld的在我的情況)。你能告訴我如何調用特定的方法嗎?

+0

該用戶已報道駱駝郵件列表上的同一個問題 - HTTP://camel.465427.n5.nabble。 com/RestFul-service-using-camel-td5726656.html –

回答

0

駱駝不調用資源類方法。從駱駝網站上的文檔http://camel.apache.org/cxfrs.html

此類僅用於配置JAXRS屬性。方法 不會在消息路由到端點期間執行,而路徑本身負責所有處理。

你需要寫一個自定義的處理邏輯,例如如下:

<from uri="cxfrs://http://127.0.0.1:8080/RestServiceApp/?resourceClasses="com.sample.Server.HelloWorld"> 
<choice> 
    <when> 
     <simple>${header.operationName} == 'operation1'</simple> 
     <to uri="direct:operation1" /> 
    </when> 
    <when> 
     <simple>${header.operationName} == 'operation2'</simple> 
     <to uri="direct:operation2" /> 
    </when> 
    .... 
</choice> 
+0

謝謝alexander的回覆。但是我想調用託管在遠程服務器上的Web服務。根據apache cxfrs文檔,如果你想通過camel-cxfrs producer來調用REST服務,那麼你需要把操作名稱放在消息頭中。但是,如果我從(rest_service_route).process(new MyProcessor())執行,則不會調用處理器。請幫助我。 – user2031542