I want to run a query against a UDDI Registry...should I use Apache SOAP or Apache Axis to create a SOAP Message myself and run it against the Registry? Is there a better way?
You can certainly use Apache SOAP or Axis (or any other SOAP implementation) to build a UDDI SOAP query by hand, but you'll find it much easier to use a UDDI client library. I know of three Java client libraries:
- Systinet's WASP UDDI Client Package (free - www.systinet.com/uddi)
- IBM's UDDI4J (open source - www.uddi4j.org)
- Sun's JAXR (reference implementation - http://java.sun.com/xml)
Any of these APIs should work with any UDDI registry. I recommend that you take a look at all three and choose the one you like best.
WASP UDDI Client is a relatively low level API that provides direct object representations of the the UDDI data model. It's a validating API that ensures that the generated UDDI SOAP messages are valid. It's a generally available free supported product. It supports both UDDI V1 and V2.
UDDI4J is a higher level API based on the UDDI data model. It simplifies the way you interact with the UDDI data elements, but it doesn't validate the generated UDDI SOAP messages. Two packages are available - one for UDDI V1 (stable) and one for UDDI V2 (in development).
JAXR is a higher level API based on the ebXML Registry data model. For the most part the ebXML data model maps easily to the UDDI data model, but there are a couple of inconsistencies. The most recent release is JAXR EA2 (part of the Spring JAX Pack).
Dig Deeper on Topics Archive
Related Q&A from Anne Thomas Manes
Anne Thomas Manes explains the differences between open source clients and open source implementations. Continue Reading
Anne Thomas Manes discusses the best way to go about creating an enterprise data dictionary and why the systems works well. Continue Reading
Anne Thomas Manes explains the difference between 'hard' real time and 'live' real time systems. Continue Reading