Я недавно пытался бороться с простым клиентом веб-сервиса мыла на Java. Я использовал несколько инструментов из разных реализаций jax-ws для создания клиента из WSDL. Несмотря на то, что клиент генерируется, всякий раз, когда я пытаюсь вызвать метод в этой службе, я никогда не получаю результат от этого метода (после вызова такого метода никогда не бывает возврата).Звонок в SOAP webservice никогда не возвращается
Пример кода:
try {
TerytWs1Locator locator = new TerytWs1Locator();
ITerytWs1 service = locator.getcustom();
// If authorization is required
((CustomStub)service).setUsername("XXX");
((CustomStub)service).setPassword("YYY");
// invoke business method
System.out.println(service.czyZalogowany());
} catch (javax.xml.rpc.ServiceException ex) {
ex.printStackTrace();
} catch (java.rmi.RemoteException ex) {
ex.printStackTrace();
}
Таким образом, в этом случае Println никогда не называют программы заклинивание на service.czyZalogowany() метод.
Я думал, что, возможно, служба не работает, поэтому я создал клиентый образец в .NET:
try
{
var proxy = new ChannelFactory<ServiceReference1.ITerytWs1>("custom");
proxy.Credentials.UserName.UserName = "XXX";
proxy.Credentials.UserName.Password = "YYY";
var result = proxy.CreateChannel();
var test = result.CzyZalogowany();
}catch (Exception ex) { }
И я могу Ис вызвать любой метод с желаемым результатом.
Что не так с кодом Java?
Вот WSDL для этого сервиса: https://uslugaterytws1test.stat.gov.pl/wsdl/terytws1.wsdl
http://stackoverflow.com/questions/38012135/error-with-connecting-to-wsdl – user7172