2017-02-17 1 views
0

J'envoie une requête SOAP à un service Web mais il renvoie sa définition WSDL en tant que réponse.Webservice envoyant sa définition WSDL comme réponse

Qu'est-ce qui pourrait y arriver?

Réponse:

<?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 

code:

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); 
    } 

} 

Quels ont causé ce problème? Je reçois une réponse appropriée de SOAP UI

+0

Probablement votre demande SOAP et/ou la configuration du point de terminaison. La réponse incomplète n'est pas vraiment utile pour répondre à votre problème. S'il vous plaît montrer le code pour votre demande. – Filburt

+0

@Filburt ajouté mise à jour – Newb

Répondre

0

Vous avez spécifié dans l'URL pour obtenir le WSDL (paramètre? WSDL). Vous devez spécifier l'URL appropriée pour l'opération de service que vous souhaitez appeler.

+0

où puis-je obtenir cela? – Newb

+0

Vous devez demander au fournisseur du service –

+0

Vous pouvez essayer jusqu'à .com laissant les choses après cela. –