https://www.samltool.com/prettyprint.php /////////////////////////////////////////////////// //// Class SOAPaccessSumUpProcedure /////////////////////////////////////////////////// package coursePlainJavaPack; import javax.xml.soap.MessageFactory; import javax.xml.soap.MimeHeaders; import javax.xml.soap.SOAPBody; import javax.xml.soap.SOAPConnection; import javax.xml.soap.SOAPConnectionFactory; import javax.xml.soap.SOAPElement; import javax.xml.soap.SOAPEnvelope; import javax.xml.soap.SOAPMessage; import javax.xml.soap.SOAPPart; import javax.xml.transform.Source; import javax.xml.transform.Transformer; import javax.xml.transform.TransformerFactory; import javax.xml.transform.stream.StreamResult; import org.w3c.dom.NodeList; public class SOAPaccessSumUpProcedure { public static void main(String args[]) { String n = "9"; // value of n, for which 1..n should be calculated try { String url = "http://localhost:8080/CourseEgov/services/ExampleServices"; SOAPConnectionFactory soapConnectionFactory = SOAPConnectionFactory.newInstance(); SOAPConnection soapConnection = soapConnectionFactory.createConnection(); MessageFactory messageFactory = MessageFactory.newInstance(); SOAPMessage soapMessage = messageFactory.createMessage(); SOAPPart soapPart = soapMessage.getSOAPPart(); SOAPEnvelope envelope = soapPart.getEnvelope(); SOAPBody soapBody = envelope.getBody(); // XML element for method name SOAPElement soapBodyElemLevel1 = soapBody.addChildElement("sumUpProcedure"); // XML element for paramater name SOAPElement soapBodyElemLevel2 = soapBodyElemLevel1.addChildElement("mInput"); // setting value for paramater soapBodyElemLevel2.addTextNode(n); MimeHeaders headers = soapMessage.getMimeHeaders(); headers.addHeader("SOAPAction",""); soapMessage.saveChanges(); // http://localhost:8080/'project name'/services/'web service name' printSOAPMessage(soapMessage); System.out.println(); System.out.println(); SOAPMessage soapResponse = soapConnection.call(soapMessage, url); SOAPBody body = soapResponse.getSOAPBody(); // ns1 : default namespace NodeList returnElements = body.getElementsByTagName("ns1:sumUpProcedureReturn"); printSOAPMessage(soapResponse); System.out.println(); System.out.println(); System.out.print("Sum of 1.." + n + " :"); System.out.println(returnElements.item(0).getTextContent()); soapConnection.close(); } catch (Exception e) { System.err.println("Error"); e.printStackTrace(); } } private static void printSOAPMessage(SOAPMessage soapMessage) throws Exception { TransformerFactory transformerFactory = TransformerFactory.newInstance(); Transformer transformer = transformerFactory.newTransformer(); Source sourceContent = soapMessage.getSOAPPart().getContent(); StreamResult result = new StreamResult(System.out); transformer.transform(sourceContent, result); } } /////////////////////////////////////////////////// //// Class SOAPaccessGetPersons /////////////////////////////////////////////////// package coursePlainJavaPack; import javax.xml.soap.MessageFactory; import javax.xml.soap.MimeHeaders; import javax.xml.soap.SOAPBody; import javax.xml.soap.SOAPConnection; import javax.xml.soap.SOAPConnectionFactory; import javax.xml.soap.SOAPElement; import javax.xml.soap.SOAPEnvelope; import javax.xml.soap.SOAPMessage; import javax.xml.soap.SOAPPart; import javax.xml.transform.Source; import javax.xml.transform.Transformer; import javax.xml.transform.TransformerFactory; import javax.xml.transform.stream.StreamResult; import org.w3c.dom.NodeList; public class SOAPaccessGetPersons { public static void main(String args[]) { String n = "9"; // value of n, for which 1..n should be calculated try { String url = "http://localhost:8080/CourseEgov/services/ExampleServices"; SOAPConnectionFactory soapConnectionFactory = SOAPConnectionFactory.newInstance(); SOAPConnection soapConnection = soapConnectionFactory.createConnection(); MessageFactory messageFactory = MessageFactory.newInstance(); SOAPMessage soapMessage = messageFactory.createMessage(); SOAPPart soapPart = soapMessage.getSOAPPart(); SOAPEnvelope envelope = soapPart.getEnvelope(); SOAPBody soapBody = envelope.getBody(); // XML element for method name SOAPElement soapBodyElemLevel1 = soapBody.addChildElement("getPersons"); // XML element for paramater name SOAPElement soapBodyElemLevel2 = soapBodyElemLevel1.addChildElement("mInput"); // setting value for paramater soapBodyElemLevel2.addTextNode(n); MimeHeaders headers = soapMessage.getMimeHeaders(); headers.addHeader("SOAPAction",""); soapMessage.saveChanges(); // http://localhost:8080/'project name'/services/'web service name' printSOAPMessage(soapMessage); System.out.println(); System.out.println(); SOAPMessage soapResponse = soapConnection.call(soapMessage, url); SOAPBody body = soapResponse.getSOAPBody(); NodeList returnElements = body.getElementsByTagName("getPersonsResponse").item(0).getChildNodes(); printSOAPMessage(soapResponse); System.out.println(); System.out.println(); System.out.println(returnElements.item(0).getChildNodes().item(0).getTextContent()); System.out.println(returnElements.item(0).getChildNodes().item(1).getTextContent()); System.out.println(returnElements.item(1).getChildNodes().item(0).getTextContent()); System.out.println(returnElements.item(1).getChildNodes().item(1).getTextContent()); soapConnection.close(); } catch (Exception e) { System.err.println("Error"); e.printStackTrace(); } } private static void printSOAPMessage(SOAPMessage soapMessage) throws Exception { TransformerFactory transformerFactory = TransformerFactory.newInstance(); Transformer transformer = transformerFactory.newTransformer(); Source sourceContent = soapMessage.getSOAPPart().getContent(); StreamResult result = new StreamResult(System.out); transformer.transform(sourceContent, result); } } /////////////////////////////////////////////////// //// Class ExampleServices /////////////////////////////////////////////////// package coursePlainJavaPack; import javax.jws.WebMethod; import javax.jws.WebService; @WebService // compiler directive to turn this into a web service public class ExampleServices { // sumUpProcedure // String mInput: value to sum up 1..mInput (typed web services not possible) // return value as String (typed web services not possible) @WebMethod // compiler directive to turn this into a web method public String sumUpProcedure (String mInput){ // return sum of 1..mInput int m=Integer.valueOf(mInput); int x=0; // accumulator variable for (int i=1;i<=m;i++){ x=x+i; } return String.valueOf(x); } @WebMethod // compiler directive to turn this into a web method public Person[] getPersons (String mInput){ Person p1 = new Person(); p1.firstName="Alice"; p1.lastName="Bitterfield"; Person p2 = new Person(); p2.firstName="Carl"; p2.lastName="Doddberg"; Person[] p = {p2,p1}; return p; } @WebMethod // compiler directive to turn this into a web method public String[] getStrings (String mInput){ String[] s = {"One","Two"}; return s; } } /////////////////////////////////////////////////// //// Class Person /////////////////////////////////////////////////// package coursePlainJavaPack; import javax.xml.bind.annotation.*; @XmlAccessorType(XmlAccessType.FIELD) @XmlType(name = "Person") public class Person { @XmlElement(name = "firstName") protected String firstName; @XmlElement(name = "lastName") protected String lastName; public String getFirstName() { return firstName; } public void setFirstName(String value) { this.firstName = value; } public String getLastName() { return lastName; } public void setLastName(String value) { this.lastName = value; } }