2012-04-11 51 views
3

我正在開發一個使用Camel和CXF的Web服務並使用「代碼優先」方法。 一切工作正常的方法有一個參數。具有多個參數的方法只接收第一個參數,而其他方法則解析爲空值。沒有例外被拋出。具有多個參數的CXF Web服務

這裏是我的路線:

<route> 
    <from uri="cxf:bean:serverEndPoint" /> 
    <log message=">>> data is : ${body}"/> 
    <choice> 
    <when> 
     <simple>${in.header.operationName} == 'doSomething'</simple> 
     <to uri="bean:TestWSBean?method=doSomething"/> 
    </when> 
    ... 
</route> 

服務器端點的定義如下:

<cxf:cxfEndpoint id="serverEndPoint" 
       address="http://localhost:9000/casServer/" 
       serviceClass="com.test.iface.TestWebService"> 
    <cxf:inInterceptors> 
     <ref bean="loggingInInterceptor"/> 
    </cxf:inInterceptors>     
    <cxf:outInterceptors> 
     <ref bean="loggingOutInterceptor"/> 
    </cxf:outInterceptors>     
</cxf:cxfEndpoint> 

和實現bean本身:

@WebService 
public interface TestWebService { 
    public String doSomething(String one, String two); 
} 

我的問題是非常基本的,有什麼應該做到能夠發送多個參數?

回答

2

我認爲你需要使用requestwrappper註解。查看cxf中wsdl_first示例生成的代碼。它生成註釋和合適的包裝類。

@RequestWrapper(的localName = 「updateCustomer」,目標名稱= 「http://customerservice.example.com/」 的className = 「com.example.customerservice.UpdateCustomer」)

+0

感謝基督教,它爲我工作。但是,它需要大量的註釋,這在我的情況下是不可接受的(代碼生成)。我將不得不重新考慮界面,將一個類包裝多個參數。 – Daniel 2012-04-19 19:46:44

+0

如何使用它?駱駝是否需要任何頭文件被髮送到路由中? – 2015-01-20 09:46:48