2017-02-17 51 views
0

Я отправляю запрос SOAP в веб-сервис, но в качестве ответа отправляет его определение WSDL.Webservice отправляет свое определение WSDL в качестве ответа

Что привело бы к этому?

Ответ:

<?xml version="1.0" encoding="UTF-8"?><wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" targetNamespace="http://www.sample.com/test_request" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:tns="http://www.sample.com/test_request" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"> 
     <wsdl:types> 
     <xsd:schema e 

Код:

import javax.xml.soap.*; 
import javax.xml.transform.*; 
import javax.xml.transform.stream.*; 

public class Test { 

    /** 
    * Starting point for the SAAJ - SOAP Client Testing 
    */ 
    public static void main(String args[]) { 
     try { 
      // Create SOAP Connection 
      SOAPConnectionFactory soapConnectionFactory = SOAPConnectionFactory.newInstance(); 
      SOAPConnection soapConnection = soapConnectionFactory.createConnection(); 

      // Send SOAP Message to SOAP Server 
      String url = "https://xxxxxxxxxxx.xxxxxxxxx.com/xxxxxxxx.do?WSDL&xxxxxxxxx=qualified"; 
      SOAPMessage soapResponse = soapConnection.call(createSOAPRequest(), url); 

      // Process the SOAP Response 
      printSOAPResponse(soapResponse); 

      soapConnection.close(); 
     } catch (Exception e) { 
      System.err.println("Error occurred while sending SOAP Request to Server"); 
      e.printStackTrace(); 
     } 
    } 

    private static SOAPMessage createSOAPRequest() throws Exception { 
     MessageFactory messageFactory = MessageFactory.newInstance(); 
     SOAPMessage soapMessage = messageFactory.createMessage(); 
     SOAPPart soapPart = soapMessage.getSOAPPart(); 

     String serverURI = "http://www.xxxxxxxx.com/xxxxxx"; 

     // SOAP Envelope 
     SOAPEnvelope envelope = soapPart.getEnvelope(); 
     envelope.addNamespaceDeclaration("a", "http://www.xxxxxxw.com/xxxxxxxx"); 

     // SOAP Body 
     SOAPBody soapBody = envelope.getBody(); 
     SOAPElement soapBodyElem = soapBody.addChildElement("test", "a"); 
     SOAPElement soapBodyElem1 = soapBodyElem.addChildElement("testid", "a"); 
     soapBodyElem1.addTextNode("xxxxxxxxx"); 

     MimeHeaders headers = soapMessage.getMimeHeaders(); 
     headers.addHeader("SOAPAction", "http://www.xxxxxx-xxxxx.com/xxxxxxx/xxxx"); 


     String username = "123"; 
     String password = "123"; 
     String authorization = new sun.misc.BASE64Encoder().encode((username + ":" + password).getBytes()); 
     System.out.println(authorization); 
     headers.addHeader("Authorization", "Basic " + authorization); 

     headers.addHeader("Proxy-Connection","Keep-Alive"); 


     soapMessage.saveChanges(); 

     /* Print the request message */ 
     System.out.println("Request: "); 
     soapMessage.writeTo(System.out); 
     System.out.println(); 

     return soapMessage; 
    } 

    /** 
    * Method used to print the SOAP Response 
    */ 
    private static void printSOAPResponse(SOAPMessage soapResponse) throws Exception { 
     TransformerFactory transformerFactory = TransformerFactory.newInstance(); 
     Transformer transformer = transformerFactory.newTransformer(); 
     Source sourceContent = soapResponse.getSOAPPart().getContent(); 
     System.out.print("\nResponse SOAP Message = "); 
     StreamResult result = new StreamResult(System.out); 
     transformer.transform(sourceContent, result); 
    } 

} 

Что вызвало эту проблему? Я получаю правильный ответ от SOAP UI

+0

Скорее всего ваш запрос SOAP и/или конфигурация конечной точки. Неполный ответ не очень помогает ответить на вашу проблему. Пожалуйста, покажите код для вашего запроса. – Filburt

+0

@Filburt добавлено обновление – Newb

ответ

0

Вы указали в URL-адресе, чтобы получить WSDL (параметр WSDL). Вам нужно указать правильный URL-адрес для операции службы, которую вы хотите вызвать.

+0

где я могу это получить? – Newb

+0

Вы должны спросить у поставщика услуги –

+0

Вы можете попробовать upto .com оставить вещи после этого. –