2010-07-19 12 views
4

Je suis coincé à essayer de comprendre comment initier une connexion WSDL avec EodData.comEodData connexion wsdl java

l'adresse wsdl est

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

J'utilise CXF pour créer une connexion client:

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"); 

et je suis

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> 

Je ne sais pas comment je devrais initier la connexion?

+0

Que signifie le @WebServiceClient ressemblent sur la classe Data? –

Répondre

1

Un test rapide utilisant le code suivant a fonctionné pour moi.

En utilisant WSDL2Java:

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

Ensuite, en utilisant le code fourni avec quelques changements:

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()); 

La réponse a été:

Invalid Username or Password 
+0

Avez-vous modifié la classe Java générée? Je ne connaissais pas le -autoNameResolution. Mon code pour me connecter à eoddata est maintenant dans http://github.com/lydonchandra/EodData.git – portoalet

+0

Je n'ai pas modifié la classe générée. J'ai utilisé autoNameResolution pour résoudre les conflits de noms puis j'ai changé le code que vous avez fourni pour utiliser le transport de savon par opposition à REST/HTTP. Il semble que pour que REST fonctionne, vous auriez dû apporter des modifications à la classe générée. – Garett