[jdom-interest] SAXBuilder / JAXP error

Alastair Rodgers alastair.rodgers at PHOCIS.COM
Thu Nov 1 03:28:13 PST 2001


Hi, 

I have been using JDOM within Weblogic 6.0 for some time, but have come across a  JAXP / SAXBuilder problem when trying to migrate to Weblogic 6.1. The problem arises in a custom Weblogic startup class I've written. Basically, if I code it as follows I don't get a problem: 

	File[] oFiles = ...[get list of files]...
      for (int i = 0; i < oFiles.length; i++) {
        Document oDoc = new SAXBuilder().build(oFiles[i]);
        ...[do stuff]...
      }

However, if instead of creating a new SAXBuilder on each iteration, I just create a single instance and reuse it: 

      SAXBuilder oBuilder = new SAXBuilder();
	File[] oFiles = ...[get list of files]...
      for (int i = 0; i < oFiles.length; i++) {
        Document oDoc = oBuilder.build(oFiles[i]);
        ...[do stuff]...
      }

...then it executes OK for the first file, but when it tries to do oBuilder.build() for the second time, I get the following error: 


Error in building: SAX2 driver class weblogic.xml.jaxp.RegistryXMLReader loaded but cannot be instantiated (no empty public constructor?)
org.jdom.JDOMException: Error in building: SAX2 driver class weblogic.xml.jaxp.RegistryXMLReader loaded but cannot be instantiated (no empty public constructor?)
	at org.jdom.input.SAXBuilder.build(SAXBuilder.java:306)
	at org.jdom.input.SAXBuilder.build(SAXBuilder.java:617)
	at org.jdom.input.SAXBuilder.build(SAXBuilder.java:599)
	...[etc]...
Root cause: java.lang.InstantiationException: weblogic.xml.jaxp.RegistryXMLReader
	at org.xml.sax.helpers.XMLReaderFactory.createXMLReader(XMLReaderFactory.java:124)
	at org.jdom.input.SAXBuilder.createParser(SAXBuilder.java:360)
	at org.jdom.input.SAXBuilder.build(SAXBuilder.java:283)
	at org.jdom.input.SAXBuilder.build(SAXBuilder.java:617)
	at org.jdom.input.SAXBuilder.build(SAXBuilder.java:599)
	...[etc]...


Does anyone know why this is? Both mechanisms work in Weblogic 6.0 but I can't see what's different in 6.1 which would cause it to fail. I seem to remember a while back someone on this mailing list saying that its wisest to always create a new SAXBuilder instance for each build() call, but I haven't been able to track this down in the archives. Is this true? If so, why? 

Thanks for any help. 


Al Rodgers
Senior Developer
Phocis Ltd



More information about the jdom-interest mailing list