2010-07-19 28 views
4

我被困試圖找出如何啓動與EodData.comEodData WSDL的Java連接

的WSDL地址是

http://ws.eoddata.com/data.asmx?wsdl 

我使用CXF來創建一個客戶端連接一個WSDL連接:

QName qname = new QName("http://ws.eoddata.com/Data", "Data"); 
Data data = new Data(new URL("http://ws.eoddata.com/data.asmx?wsdl"), qname); 
DataHttpGet dataGet = data.getDataHttpGet(); 
dataGet.login("xxx", "ppp"); 

和我

Caused by: org.apache.cxf.interceptor.Fault: Unmarshalling Error: unexpected element (uri:"http://schemas.xmlsoap.org/soap/envelope/", local:"Header"). Expected elements are <{http://ws.eoddata.com/Data}LoginResult> 

不知道我應該如何啓動連接?

+0

什麼是@WebServiceClient看起來像Data類? – 2010-07-28 16:58:36

回答

1

使用以下代碼的快速測試適用於我。

使用的WSDL2Java:

wsdl2java -autoNameResolution http://ws.eoddata.com/data.asmx?wsdl 

然後使用您提供了一些小改動代碼:

QName qname = new QName("http://ws.eoddata.com/Data", "Data"); 
Data data = new Data(new URL("http://ws.eoddata.com/data.asmx?wsdl"), qname); 
DataSoap dataSoap = data.getDataSoap(); 
LOGINRESPONSE response = dataSoap.login("xxx", "ppp"); 

System.out.println(response.getMessage()); 

的反應是:

Invalid Username or Password 
+0

你修改了生成的Java類嗎?我不知道-autoNameResolution。我的代碼連接到eoddata現在http://github.com/lydonchandra/EodData.git – portoalet 2010-08-02 09:37:50

+0

我沒有修改生成的類。我用autoNameResolution來解決命名衝突,然後我改變了你提供的使用soap傳輸的代碼,而不是REST/HTTP。看起來REST可以工作,您需要對生成的類進行修改。 – Garett 2010-08-21 03:42:15