Clients Against the RandService
The claim that SOAP-based services are language-neutral needs to be taken on faith a bit longer. The first
client against the RandService is in Java but the two thereafter are in C# and Perl. Starting with a Java client will help
to clarify how the critical service contract, the WSDL document, can be
put to good use in writing a client. The WSDL will be studied in detail, but putting the WSDL to work first
should help to motivate the detailed study.
A Java Client Against the RandService
Recall the XML Schema (see Example 4-3) that the Endpoint publisher generates dynamically when the
RandService is published. The publisher likewise
generates a WSDL, which can be requested as follows:
%curlhttp://localhost:8888/rs?wsdl
JDK 1.6 and greater ship with a utility, wsimport, that uses a WSDL to generate Java classes in support of programming a client against the service described in the WSDL. Here is how the utility can be used in the current example:
%wsimport-pclient-keephttp://localhost:8888/rs?wsdl
The -p flag stands for “package”: the utility creates a directory named client and puts the
generated Java code in this directory/package. The -keep flag generates source (.java) as well as
compiled (.class) files; without this flag, only compiled files would be in the client directory.
Sixteen files are generated in total, half source and half compiled. Among these are files with
names such as Next1 and Next1Response, the very names of the classes generated ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access