TruerWords Logo

Search TruerWords

Sign Up  Log On

Hacking on UDDI in Mozilla and/or Firefox

Hacking on UDDI in Mozilla and/or Firefox

Want to hack on a web service that hasn't yet been implemented in Firefox, and very few people understand?

This is one of the five 'hacks' that I wrote for the book, Firefox Hacks. It wasn't included in the book because it's too geeky even for most advanced web developers, and Firefox's support for UDDI is incomplete. Still, if you need to work with UDDI, then Firefox could make an excellent test-bed because it's so easy to rapidly develop a user interface.

This article is just intended to help you start working with UDDI in Firefox.

Note that everything mentioned here applies equally to Firefox and the Mozilla Application Suite.

What Is UDDI? Permalink Icon

According to, UDDI is, A industry initiative to create a platform-independent, open framework for describing services, discovering businesses, and integrating business services

Universal Description, Discovery and Integration (UDDI) is a group of registries on the web that collect and organize information about the web services APIs provided by businesses (and other organizations). UDDI's intent is to promote and facilitate the use of web services for business transactions.

The registries allow you to run searches:

  • for organizations by name -- boring
  • for services by category like "book seller" or "software developer" -- still pretty boring
  • for support of a particular protocol (e.g., find automated, SOAP-based, document translation services) -- cool idea!
  • for any of the above within a geographical location

Those are just a few examples. The end result of a registry search is often technical information like the URL of a WSDL file, or business contact records.

The UDDI registries are themselves web services, having full SOAP APIs and WSDL files. UDDI is essentially a search engine (actually, a collection of search engines which mirror each other's content), designed for access by web services seeking other web services with which to cooperate and conduct business. There is also an API for registering and maintaining your organization's entry in the UDDI servers.

UDDI and Firefox Permalink Icon

Firefox does not have built-in support for either of the UDDI interfaces (Inquiry and Publishing). Support for the Inquiry API has been written, but as of this writing it is not yet included with the browser. You can see the work that has been done by browsing a few files in the source code. The README.txt file in that directory is worth reading.

All support for UDDI has been written in JavaScript, so you don't have to be a C++ programmer/kernel developer to open the code and see how everything is done.

Surprisingly, those scripts don't use Firefox's support for WSDL, or even SOAP. Instead, they build the XML documents 'manually', and use a lower-level service object called XMLHttpRequest to communicate with the UDDI servers.

Create A Working UDDI Interface Permalink Icon

If you'd like to hack on UDDI in Firefox, then start with the scripts and html file in the source mentioned above. This should be enough to get you started:

  1. Download the Mozilla source (or see Hack #93 in the book)
  2. Extract the three JavaScript files and one HTML file from the extensions/webservices/uddi folder
  3. Create an extension, and put those four files into its content folder. Don't bother making a .jar file, just register the folder as an extension. (See Hack #86)
  4. Open uddi.html in a text editor. Near the top, proxy.operatorSite is set to a SOAP endpoint at, which no longer works. Change the URL to one of the following (or find another), then save your changes and close the file.
  5. Open UDDIDecode.js in a text editor, and replace every occurrence of
    with this.getChildElementByName("soap:Body" (for Microsoft's servers)
    or with this.getChildElementByName("SOAP:Body" (for IBM's servers).
  6. Save and close the file.
  7. Open the uddi.html file in your browser with its chrome URL, which should be something like chrome://yourextension/content/uddi.html

If Firefox seems to ignore your changes in these files, even after reloading them or restarting the browser, then set the preference nglayout.debug.disable_xul_cache to true. Firefox will then ignore its cache for everything loaded from the chrome (not just the files we're working on here). This will cause it to run more slowly at times, so change that preference back to false when you're done hacking with the UDDI files in your chrome extension.

Page last updated: 4/6/2005

is Seth Dillingham's
personal web site.
From now on, ending a sentence with a preposition is something up with which I will not put. - WC