[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