Create SOAP message using Java

In this article, i am going to create the SOAP Message by using core Java Only. SOAP Stands for ” Simple Object Access Protocol”, which is used to exchange the structured information via Webservices.

SOAP Message consist of following three parts:

  1. SOAP-ENV:Envelope
  2. SOAP-ENV:Header
  3. SOAP-ENV:Body
SOAP Message Format for Web Services

SOAP Message Format for Web Services

To create the SOAP, first we will need to create the object of “javax.xml.soap.MessageFactory“, then create object of “javax.xml.soap.SOAPMessage“. This object of “SOAPMessage” will have all the messages inside it in “javax.xml.soap.SOAPEnvelope” object. Every “Envelope” will have the “Header” and “Body” as shown in below program:

package com.service.SOAPMain;

import java.io.FileOutputStream;

import javax.xml.soap.MessageFactory;
import javax.xml.soap.SOAPBody;
import javax.xml.soap.SOAPBodyElement;
import javax.xml.soap.SOAPEnvelope;
import javax.xml.soap.SOAPHeader;
import javax.xml.soap.SOAPMessage;
import javax.xml.soap.SOAPPart;

public class CreateSOAPMessage {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		try{
			MessageFactory factory = MessageFactory.newInstance();
			SOAPMessage soapMsg = factory.createMessage();
			SOAPPart part = soapMsg.getSOAPPart();

			SOAPEnvelope envelope = part.getEnvelope();
			SOAPHeader header = envelope.getHeader();
			SOAPBody body = envelope.getBody();

			header.addTextNode("Training Details");

			SOAPBodyElement element = body.addBodyElement(envelope.createName("JAVA", "training", "http://shivasoft.in/blog"));
			element.addChildElement("WS").addTextNode("Training on Web service");

			SOAPBodyElement element1 = body.addBodyElement(envelope.createName("JAVA", "training", "http://shivasoft.in/blog"));
			element1.addChildElement("Spring").addTextNode("Training on Spring 3.0");

			soapMsg.writeTo(System.out);

			FileOutputStream fOut = new FileOutputStream("SoapMessage.xml");
			soapMsg.writeTo(fOut);

			System.out.println();
			System.out.println("SOAP msg created");

		}catch(Exception e){
			e.printStackTrace();
		}

	}

}

As the output, one xml file of named “SoapMessage.xml” will be created and also printed on the console.

SOAP Messsage Output - Java

SOAP Messsage Output - Java

This entry was posted in JAVA and tagged , , on by .

About Jitendra

Sr. Consultant at Cognizant Technology Solutions. Have more than 6 years of experience in technologies and frameworks like Salesforce, Node.Js, JAVA, PHP, JSP, Struts, Hibernate, C#, ASP.NET, SQL Server. Also many javaScript libraries like AngularJs, JQuery, JQuery Mobile, BootStrap. Connect : Linked In

Related posts