Подход 1 к трассе стека
javax.xml.ws.WebServiceException: не удалось получить доступ к WSDL по адресу: http://username:password@10.XXX.15.XX/ClientExt/NewAPI/api.asmx?wsdl. Сбой:
Сервер вернул код ответа HTTP: 401 для URL: http://username:password@10.XXX.15.XX/ClientExt/NewAPI/api.asmx?wsdl.
в com.sun.xml.internal.ws.wsdl.parser.RuntimeWSDLParser.tryWithMex (RuntimeWSDLParser.java:250)
в com.sun.xml.internal.ws.wsdl.parser.RuntimeWSDLParser.parse (RuntimeWSDLParser.java:231)
в com.sun.xml.internal.ws.wsdl.parser.RuntimeWSDLParser.parse (RuntimeWSDLParser.java:194)
в com.sun.xml.internal.ws.wsdl.parser.RuntimeWSDLParser.parse (RuntimeWSDLParser.java:163)
на com.sun.xml.internal.ws.client.WSServiceDelegate.parseWSDL (WSServiceDelegate.java:348)
на com.sun.xml.internal.ws.client.WSServiceDelegate. (WSServiceDelegate.java:306)
на com.sun.xml.internal.ws.client.WSServiceDelegate. (WSServiceDelegate.java:215)
на com.sun.xml.internal.ws.client.WSServiceDelegate. (WSServiceDelegate.java:196)
на com.sun.xml.internal.ws.client.WSServiceDelegate. (WSServiceDelegate.java:192)
в com.sun.xml.internal.ws.spi.ProviderImpl.createServiceDelegate (ProviderImpl.java:104)
на javax.xml.ws.Service. (Service.java:77)
в org.tempuri.Api. (Api.java:82)
подход 1:
Authenticator.setDefault(new Authenticator() {
@Override
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(username, password.toCharArray());
}
});
заход на посадку 2
HttpURLConnection myURLConnection = (HttpURLConnection)url.openConnection();
String userCredentials = "username:password";
String basicAuth = "Basic " + new String(new Base64().encode(userCredentials.getBytes()));
myURLConnection.setRequestProperty ("Authorization", basicAuth);
myURLConnection.setRequestMethod("GET");
myURLConnection.setDoInput(true);
myURLConnection.setConnectTimeout(1500000);
myURLConnection.connect();
int responseCode = myURLConnection.getResponseCode();//returns 200 and error
Я получаю код ответа 200 в подходе 2, также получая выше трассировки стека в качестве сообщения об ошибке.
Затем я попытался с Authenticator (подход 1), он работает нормально, если я вызываю в файле javaTester, но получаю сообщение об ошибке ниже при вызове через приложение.
org.apache.axis2.AxisFault: HTTP (401) Несанкционированный адрес: http://10.XXX.15.XX/ClientExt/NewAPI/api.asmx