2016-02-11 1 views
0

Я пытаюсь использовать аутентифицированный веб-сервис с использованием SAAJ. Это код, который я до сих пор:Использование аутентифицированного веб-сервиса с использованием SAAJ?

import java.io.ByteArrayOutputStream; 

import javax.xml.soap.*; 
import biz.source_code.base64Coder.*; 


public class Client { 
    private static String endpoint = "https://example.com/xxx.php", 
    username = "xxx", password = "xxx"; 

    private static SOAPMessage getRequest() throws Exception{ 
     MessageFactory factory = MessageFactory.newInstance(); 
     SOAPMessage message = factory.createMessage(); 

     //set authorization as a HTTP header 
     String authorization = Base64Coder.encodeString(username + ":" + password); 
     MimeHeaders hd = message.getMimeHeaders(); 
     hd.addHeader("Authorization", "Basic " + authorization); 

     //Call getReportList operation 


     return message; 
    } 


    public static void main(String[] args) throws Exception { 
     SOAPConnectionFactory connFactory = SOAPConnectionFactory.newInstance(); 
     SOAPConnection connection = connFactory.createConnection(); 

     // create request message and give it content 
     SOAPMessage request = Client.getRequest(); 

     // call the API endpoint with the request 
     SOAPMessage response = connection.call(request, endpoint); 

     ByteArrayOutputStream out = new ByteArrayOutputStream(); 
     response.writeTo(out); 
     String strMsg = new String(out.toByteArray()); 
     System.out.println(strMsg); 
    } 

} 

Когда я запускаю это, он печатает strMsg (ответ от веб-службы) следующим образом:

<?xml version="1.0" encoding="UTF-8"?> 
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"><SOAP-ENV:Body><SOAP-ENV:Fault><faultcode>WSDL</faultcode><faultstring>SOAP-ERROR: Parsing WSDL: Couldn't load from '/www/example.wsdl' : failed to load external entity "/www/example.wsdl" 
</faultstring></SOAP-ENV:Fault></SOAP-ENV:Body></SOAP-ENV:Envelope> 

Я там угадывание я аутентифицировались себя, но была проблема с веб-службой, а не моей. Но я не совсем уверен. Это сообщение об ошибке не кажется общим.

Означает ли это, что предоставленная вами аутентификация была неправильной или недостаточной? Или я должен предоставить сертификат SSL, потому что веб-служба использует SSL? Если да, есть ли руководство по использованию SSL-сертификатов с SAAJ?

ответ

Смежные вопросы