Je suis en train d'importer le service Web suivant: http://www.biomart.org/biomart/martwsdlImporter un Webservice:
En utilisant boucle pour le service getResistry(): tout est OK:
curl --header 'Content-Type: text/xml' --data '<?xml version="1.0"?><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:mar="http://www.biomart.org:80/MartServiceSoap">
<soapenv:Header/>
<soapenv:Body>
<mar:getRegistry/>
</soapenv:Body>
</soapenv:Envelope>' http://www.biomart.org:80/biomart/martsoap
il retourne:
<?xml version="1.0" encoding="UTF-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:soapenc="http://schemas.xmlsoap.o
rg/soap/encoding/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/
envelope/" soap:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<soap:Body>
<getRegistryResponse xmlns="http://www.biomart.org:80/MartServiceSoap">
<mart>
<name xsi:type="xsd:string">ensembl</name>
<displayName xsi:type="xsd:string">ENSEMBL GENES 57 (SANGER UK)</displayName>
<database xsi:type="xsd:string">ensembl_mart_57</database>
(...)
OK.
Mais quand ce service est généré à l'aide CXF/wsdl2java (ou même wsimport)
mkdir src
wsdl2java -keep -d src -client "http://www.biomart.org/biomart/martwsdl"
javac -g -d src -sourcepath src src/org/biomart/_80/martservicesoap/MartServiceSoap_BioMartSoapPort_Client.java
java -cp src org.biomart._80.martservicesoap.MartServiceSoap_BioMartSoapPort_Client
le client généré renvoie une vide liste pour getRegistry():
Invoking getRegistry...
getRegistry.result=[]
pourquoi? que dois-je faire pour que ce code fonctionne?
Un grand merci
Pierre
S'il vous plaît montrer le code MartServiceSoap_BioMartSoapPort_Client.java, la principale méthode suivie en particulier par l'endroit où vous appelez le service. – shivaspk
@shivaspk MartServiceSoap_BioMartSoapPort_Client.java a été généré par CXF/wsdl2java en utilisant l'option '-client'. – Pierre
C'est seulement une classe de souche ce qu'elle génère, tout ce qu'elle fait est de créer des équivalents java des opérations WSDL, vous devez écrire un simple programme java pour appeler l'opération getRegitry(). – shivaspk