Sending a SOAP Message : SOAP « Web Services SOA « Java Tutorial






import java.net.URL;

import javax.xml.namespace.QName;
import javax.xml.soap.MessageFactory;
import javax.xml.soap.SOAPBody;
import javax.xml.soap.SOAPBodyElement;
import javax.xml.soap.SOAPConnection;
import javax.xml.soap.SOAPConnectionFactory;
import javax.xml.soap.SOAPElement;
import javax.xml.soap.SOAPHeader;
import javax.xml.soap.SOAPMessage;

public class SOAPRequest {
  public static void main(String[] args) {
    try {
      SOAPConnectionFactory sfc = SOAPConnectionFactory.newInstance();
      SOAPConnection connection = sfc.createConnection();

      MessageFactory mf = MessageFactory.newInstance();
      SOAPMessage sm = mf.createMessage();

      SOAPHeader sh = sm.getSOAPHeader();
      SOAPBody sb = sm.getSOAPBody();
      sh.detachNode();
      QName bodyName = new QName("http://quoteCompany.com", "GetQuote", "d");
      SOAPBodyElement bodyElement = sb.addBodyElement(bodyName);
      QName qn = new QName("aName");
      SOAPElement quotation = bodyElement.addChildElement(qn);

      quotation.addTextNode("TextMode");

      System.out.println("\n Soap Request:\n");
      sm.writeTo(System.out);
      System.out.println();

      URL endpoint = new URL("http://yourServer.com");
      SOAPMessage response = connection.call(sm, endpoint);
      System.out.println(response.getContentDescription());
    } catch (Exception ex) {
      ex.printStackTrace();
    }
  }
}








26.2.SOAP
26.2.1.Create SOAP message
26.2.2.Generate DOM with SOAP message
26.2.3.Output SOAP message with XML transformer
26.2.4.Generate DSA key pair
26.2.5.Use DSA key pair to generate XML Signature
26.2.6.Sign SOAP message
26.2.7.Call google web service and deal with the return with SOAPMessage
26.2.8.Sending a SOAP Message
26.2.9.Processing a SOAP Message