2017-02-17 3 views
0

Ich sende eine SOAP-Anfrage an einen Webservice, aber sie sendet ihre WSDL-Definition als Antwort zurück.Webservice sendet seine WSDL-Definition als Antwort

Was würde dazu führen?

Antwort:

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

} 

Was dieses Problem verursacht haben? Ich bekomme richtige Antwort von SOAP UI

+0

Höchstwahrscheinlich Ihre SOAP-Anfrage und/oder Endpunktkonfiguration. Die unvollständige Antwort ist nicht wirklich hilfreich, um Ihr Problem zu lösen. Bitte zeigen Sie den Code für Ihre Anfrage. – Filburt

+0

@Filburt hinzugefügt update – Newb

Antwort

0

Sie in der URL angegeben, um die WSDL (Parameter? WSDL) zu erhalten. Sie müssen die richtige URL für den Servicevorgang angeben, den Sie aufrufen möchten.

+0

wo kann ich das bekommen? – Newb

+0

Sie müssen den Anbieter des Dienstes fragen –

+0

Sie können versuchen, bis zu .com verlassen Dinge danach. –