Sending and Receiving SOAP Messages

We have seen the building blocks of a SOAP message. The next steps are to understand how a message is built and how it is then communicated between two endpoints. To discuss these topics, we present a simple SOAP sender and a SOAP receiver using Apache SOAP and the Apache Tomcat servlet engine.[3] You may find it refreshing to discover that the additional pieces are not placed in the SOAP document by hand. The SOAP-ification is accomplished by using APIs that take care of the dirty work.

Before we look at the code of our first SOAP example, let’s run it and observe its behavior. This example consists of a simple HTTP sender class that reads an XML file, wraps it in a SOAP envelope, and sends it to a URL destination. The destination is a simple HTTP servlet that takes the contents of the message and dumps it to the screen. As we progress through concepts such as dynamic headers, SOAP with Attachments, and SOAP-RPC, these examples will become progressively more sophisticated. For now, lets run the simple one. From the command line, run the command:

java SimpleGenericHTTPSoapClient -df ./PO.xml

Tip

If this command doesn’t work, make sure that SimpleGenericHTTPSoapClient.class is on the classpath and PO.xml is in the current directory.

You should see the following output:

_________________________________________________________ Starting SimpleGenericHTTPSoapClient: host url = http://localhost:8080/examples/servlet/SimpleHTTPReceive data file = ./PO.xml ...

Get Java Web Services now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.