Я пытаюсь импортировать следующий веб-сервис: http://www.biomart.org/biomart/martwsdl
Использование curl для службы getResistry () : все в порядке:
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
возвращает:
<?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.
Но когда эта служба генерируется с использованием CXF / wsdl2java (или даже 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
сгенерированный клиент возвращает пустой список для getRegistry ():
Invoking getRegistry... getRegistry.result=[]
почему? что я должен сделать, чтобы этот код работал?
Большое спасибо
Pierre
В клиентском классе есть метод main, в котором вы вызываете операцию getRegistry.
Может выглядеть так
MartServiceSoap_BioMartSoapPort_Client client = new MartServiceSoap_BioMartSoapPort_Client(); System.out.println(client.getRegistry());