LAVADORA Project



Problems with Crimson parser

Unfortunately the Crimson Parser, which is a default XML parser delivered together with J2SDK cannot properly process XML documents with elements from  xml namespace, and such elements are part of UDDI 2.0 API (and probably other versions, which I'm not sure). UDDI4J library (in case of the Lavadora plug-in) uses Axis as an implementation of SOAP protocol for transporting UDDI messages. Axis uses default mechanism for obtaining an instance of an XML parser (i.e. through the DocumentBuilderFactory class), which in the absence of any specific parser implementation returns Crimson.

This would be easily solvable by including parser libraries in the classpath of the plug-in, but unfortunately Eclipse's class loading mechanism makes it impossible to have custom parser instantiated (using standard invocation mechanism) from any plug-in's libraries. Thus instead of modifying in some way Eclipse Platform I decided to require users to drop custom parser (Xerces) files in the lib/endorsed directory of the JRE (the one, which is used by Eclipse).

The endorsed folder is a standard Java place for putting user libraries with classes from packages java.* and javax.*. When Java Virtual Machine starts it looks first in these folders for any libraries with classes from above packages and loads them instead of the ones from a default location.

Anyone ho has better solution for this problem (the Crimson parser from the newest JDK I've tried - 1.4.2_05, had still the same bug) is kindly asked to share his knowledge.
Quick links
SourceForge.net Logo