WCCA SOAP Support

Historically, a high percentage of activity on the WCCA website has been generated by organizations who have developed automated processes to monitor and download circuit court information. The traditional browser-based user interface is not well suited to this purpose as the main goal of a browser-based interface is that of presentation, not content. CCAP recognizes the need to accomodate a content-driven interface to WCCA in addition to the traditional, presentation-based interface. WCCA SOAP is CCAP's solution. This web page provides introductory information to the WCCA SOAP service and offers a set of example programs using several popular languages and platforms.

The WCCA SOAP service is available at http://wcca.wicourts.gov/services/WCCA2. All access to the WCCA SOAP layer is protected with a username and password using HTTP BASIC Authentication. Receiving a username and password for the service is contingent upon signing an agreement with CCAP. Contact WCCASOAP@wicourts.gov for more information.

WSDL for the WCCA SOAP service is available at http://wcca.wicourts.gov/services/WCCA2?wsdl. You will need to use your username and password to download the WSDL. The WSDL describes the supported calls as well as defines message formats using XML Schema.

The easiest way to use the WCCA SOAP service is to use a SOAP toolkit that supports generating a client proxy class from the WSDL. The WCCA SOAP service uses a document/literal message format as opposed to RPC (section 5) encoding.

Although the WSDL documents the format of the input and output messages, there is currently no field-by-field documentation. However, the XML sent to and returned from the WCCA SOAP service should be, in general, self-describing. There is also an extremely high degree of correlation between the equivalent browser and SOAP search. For example, the searchCases SOAP method is equivalent to the browser-based "Advanced Case Search". Form element names will correspond to XML tags.

In building a client application it is often extremely useful to see the raw XML sent to and from the server. Depending on your language or platform there are several options to accomplish this:

  • Apache Axis (Java). See the tcpmon appendix to the user's guide. The Apache Axis homepage is http://xml.apache.org/axis
  • PocketSOAP (Microsoft Windows). See the YATT, PcapTrace, TcpTrace, and ProxyTrace links. The PocketSOAP homepage is http://www.pocketsoap.com.
  • SOAP::Lite (Perl). Turn on tracing as described in the SOAP::Lite documentation. The SOAP::Lite homepage is http://www.soaplite.com.

Each directory in the example ZIP file contains an example using a different SOAP toolkit. The library files used in the examples are not included with the examples themselves. The file READMEFIRST.txt contains a text version of this introduction. The file README.txt in each sub-directory will contain installation instructions and more information. An HTML version of each README.txt appears following the download link.

  • axis - A Java example using the Apache Axis SOAP toolkit.
  • c_sharp - A Visual Studio .NET project containing a C# example.
  • jaxm - A Java example using the JAXM reference implementation from Sun.
  • perl - A Perl example using the SOAP::Lite library.
  • pocketsoap - A Visual Studio .NET project with a PocketSOAP example written in VB.NET.

Download the Examples

Apache Axis

This Java example uses the Apache Axis SOAP toolkit. Apache Axis can be downloaded from http://ws.apache.org. To compile and run the example, you must install Apache Axis. The example was developed against Apache Axis 1.1 RC2.

To compile and run the example you must generate the client proxy. Download the WSDL and set the axis.home property in build.properties to the location of your Axis installation and the wsdl.location property to the path of the downloaded WSDL. Then run ant generate-proxy to generate the proxy. You must have Jakarta Ant installed for this step to work.

Edit src/example/AxisClient.java to set your username and password to the username and password provided by CCAP.

Then run ant run-example to compile and run the example class.

If you are not running JDK 1.4.x, you must also place JAXP and a JAXP-compliant XML parser in the lib directory.

C# With Visual Studio .NET

The WCCA2Example directory contains a Visual Studio .NET C# project containing an example program which uses the WCCA SOAP layer. Installing Visual Studio .NET will install the .NET Framework SDK which contains the assemblies required to compile and run the example. It should be possible to generate the client proxy, compile, and run the example using only the .NET Framework SDK. The procedure to do so is not documented here, however.

IMPORTANT NOTE: The file WCCA2Example/WCCAService.cs contains the C# generated from the WCCA WSDL file. It is strongly recommended to regenerate this file before compiling and running the example as it might be out of date with respect to what is running on the WCCA Web site.

To generate the client proxy, run the following command from the Visual Studio .NET Command Prompt:

wsdl /username:<your username> /password:<your password> /namespace:<your namespace>

Your username and password will be provided by CCAP. The namespace parameter is application-specific.

Although the example uses C#, any language supported by .NET and the WSDL proxy generator (e.g. Visual Basic, JavaScript), will work equally well.

The example class that uses WCCAService.cs appears as WCCA2Example/Main.cs. Code comments further explain how to set your username and password as well as provide more information about the individual examples. At a minimum, the username and password constants provided at the beginning of the file should be set to the username and password provided to you by CCAP.

JAXM

This Java language example uses JAXM, a specification from Sun. A reference implementation is distributed with the Java Web Services Developer Pack. The example was written using the reference implementation although any compliant implementation should work.

The JAXM homepage is http://java.sun.com/xml/jaxm/.

The Java Web Services Developer Pack can be downloaded from http://java.sun.com/webservices/downloads/webservicespack.html.

To run the example, first edit the constants found in src/example/Client.java to include the username and password provided by CCAP. Then set the jwsdp.home property in build.properties to the install directory of the Java WSDP, and run ant run-example.

Jakarta Ant must be installed in order for this work. If Jakarta Ant is not installed, it is still possible to compile and run the example but you will have to set the appropriate class path manually.

If you are not using JDK 1.4.x or higher, JAXP and a JAXP-compliant XML parser must be placed in the lib directory

SOAP::Lite

The Perl example uses the SOAP::Lite module. It is available from http://www.soaplite.com. If you are using the ActiveState Perl distribution ( http://www.activestate.com), SOAP::Lite should already be installed. The examples were developed against the 0.55 version of SOAP::Lite.

If you do not already have SOAP::Lite installed, installation instructions are available on the SOAP::Lite homepage. It also contains documentation and links to useful SOAP::Lite and SOAP oriented Web pages and books.

To run the example, you must have the username, password, and service URL provided by CCAP. Comments in wcca2example.pl explain where to set these and provide more information about the example searches.

PocketSOAP with VB.NET

PocketSOAP is available from http://www.pocketsoap.com. It is an open source SOAP client toolkit originally targeted at the PocketPC, but runs on all Microsoft platforms. The site also hosts PocketXML-RPC, an XML-RPC client; PocketHTTP, an HTTP client; 4s4c, aka Simon's SOAP Server Services for COM; and the WSDL Proxy Generator, a client proxy generator for VB6 - all written by one Simon Fell.

The example is a Visual Studio .NET project using VB.NET.

For those who still use VB6, it is recommended to check out the WSDL Proxy Generator which "will generate a complete VB6 project, including classes for complex types and custom serializers. Both GUI and command line tools are available."

Also see the Samples link off the homepage. It includes an amazing number of samples where PocketSOAP is used to accomplish real-world tasks. In particular, the C# example, was used as a starting point for the example application.

In order to compile and run the example you must first create a .NET assembly from the COM DLL. To do this run:

tlbimp "C:\Program Files\SimonFell\PocketSOAP\psoap32.dll"

in the WCCA2Example2 project directory.

(Note that the path to psoap32.dll might be different depending on your installation path and PocketSOAP version.)