Добрый день!
Хочу подключиться к сервису sletat.ru (
module.sletat.ru/XmlGate.svc?singlewsdl)
Написал я такой код:
URL url = new URL("http://module.sletat.ru/XmlGate.svc?singlewsdl");
QName qname = new QName("urn:SletatRu:Contracts:Soap11Gate:v1", "Soap11Gate");
Service service = Service.create(url, qname);
Soap11Gate soap = service.getPort(Soap11Gate.class);
Но когда я пытаюсь получить какие-нибудь данные:
System.out.println(soap.getCountries(6));
Он выводит ошибку:
Exception in thread "main" javax.xml.ws.soap.SOAPFaultException: Данные для авторизации в заголовке AuthData не предоставлены.
at com.sun.xml.internal.ws.fault.SOAP11Fault.getProtocolException(SOAP11Fault.java:178)
at com.sun.xml.internal.ws.fault.SOAPFaultBuilder.createException(SOAPFaultBuilder.java:125)
at com.sun.xml.internal.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:108)
at com.sun.xml.internal.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:78)
at com.sun.xml.internal.ws.client.sei.SEIStub.invoke(SEIStub.java:135)
at com.sun.proxy.$Proxy25.getCountries(Unknown Source)
at javarush.client.Sletat.main(Sletat.java:35)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:144)
Имеется отдельный класс AuthData
Написал я к авторизации такой код:
AuthData auth = new AuthData();
auth.setLogin(new JAXBElement<String>(qname, String.class, "******"));
auth.setPassword(new JAXBElement<String>(qname, String.class, "*******"));
Но не могу понять как его прикрутить к soap.
Помогите, буду очень признателен.
Вот весь код:
URL url = new URL("
module.sletat.ru/XmlGate.svc?singlewsdl");
QName qname = new QName("urn:SletatRu:Contracts:Soap11Gate:v1", "Soap11Gate");
Service service = Service.create(url, qname);
Soap11Gate soap = service.getPort(Soap11Gate.class);
AuthData auth = new AuthData();
auth.setLogin(new JAXBElement<String>(qname, String.class, "*******"));
auth.setPassword(new JAXBElement<String>(qname, String.class, "*********"));
System.out.println(soap.getCountries(6));