Re: jdom2 runtime

"Craig Christophersen" <[email protected]> Tue, 21 Aug 2012 14:59:04 -0600
Newsgroups gmane.comp.java.jdom.general
Message-ID <[email protected]>
Thanks again Rolf----Dropped crimson and it runs OK with the no arg
constructor.

On to learning the new features in JDOM.

 

From: Rolf Lear [mailto:[email protected]] 
Sent: Tuesday, August 21, 2012 2:32 PM
To: Craig Christophersen
Cc: [email protected]
Subject: Re: [jdom-interest] jdom2 runtime

 

OK, I believe the issue is an incompatible issue with crimson. I believe you
have xrimson earlier in the classpath than xerces, as a result the JAXP
process is choosing the crimson parser instead of xerces.

You should be able to check this by adding "-Djaxp.debug=1" to your jvm
arguments.

Crimson is *really* old... the most recent release was in 2001.... and it is
discontinued. Though I am surprised it even has any JAXP vestiges... though,
checking it's documentation, it *does* support JAXP 1.1, thus, I imagine
what is happening in your case is that you have Crimson earlier in the
classpath than xerces. As a result, the JAP API is finding the crimson
parser ahead of the Xerces.

I recommend dropping the crimson jar from your classpath. There is nothing
you should be needing Crimson for (and if you have third-party-dependencies
requiring crimson then there's problems). 

Alternatively, put the xerces jar at the top of the classpath.

With the fix for issue #89 (not available yet) you can specify the xerces
JAXP factory explicitly....

For the record, the 'simple' circumstance is for there to be just one XML
parser in your classpath... not two.

I recommend using the xerces.jar and matching xmlapis.jar only

For what it's worth, the other jars Xalan, saxon, etc, are not actual
parsers, but rather additional XML functionality.

Rolf

On 21/08/2012 3:37 PM, Craig Christophersen wrote:

Exception in thread "AWT-EventQueue-0" java.lang.ExceptionInInitializerError

       at org.jdom2.input.SAXBuilder.<init>(SAXBuilder.java:338)

       at org.jdom2.input.SAXBuilder.<init>(SAXBuilder.java:221)

       at transform.ReadDmFile.<init>(ReadDmFile.java:47)

       at transform.TransformAction.execute(TransformAction.java:410)

       at transform.MakeBook.actionPerformed(MakeBook.java:112)

       at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)

       at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)

       at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)

       at javax.swing.DefaultButtonModel.setPressed(Unknown Source)

       at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown
Source)

       at java.awt.AWTEventMulticaster.mouseReleased(Unknown Source)

       at java.awt.Component.processMouseEvent(Unknown Source)

       at javax.swing.JComponent.processMouseEvent(Unknown Source)

       at java.awt.Component.processEvent(Unknown Source)

       at java.awt.Container.processEvent(Unknown Source)

       at java.awt.Component.dispatchEventImpl(Unknown Source)

       at java.awt.Container.dispatchEventImpl(Unknown Source)

       at java.awt.Component.dispatchEvent(Unknown Source)

       at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)

       at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)

       at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)

       at java.awt.Container.dispatchEventImpl(Unknown Source)

       at java.awt.Window.dispatchEventImpl(Unknown Source)

       at java.awt.Component.dispatchEvent(Unknown Source)

       at java.awt.EventQueue.dispatchEventImpl(Unknown Source)

       at java.awt.EventQueue.access$000(Unknown Source)

       at java.awt.EventQueue$1.run(Unknown Source)

       at java.awt.EventQueue$1.run(Unknown Source)

       at java.security.AccessController.doPrivileged(Native Method)

       at
java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)

       at
java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)

       at java.awt.EventQueue$2.run(Unknown Source)

       at java.awt.EventQueue$2.run(Unknown Source)

       at java.security.AccessController.doPrivileged(Native Method)

       at
java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)

       at java.awt.EventQueue.dispatchEvent(Unknown Source)

       at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown
Source)

       at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)

       at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown
Source)

       at java.awt.EventDispatchThread.pumpEvents(Unknown Source)

       at java.awt.EventDispatchThread.pumpEvents(Unknown Source)

       at java.awt.EventDispatchThread.run(Unknown Source)

Caused by: java.lang.UnsupportedOperationException: This parser does not
support specification "null" version "null"

       at javax.xml.parsers.SAXParserFactory.setSchema(Unknown Source)

       at org.jdom2.input.sax.XMLReaders.<init>(XMLReaders.java:122)

       at org.jdom2.input.sax.XMLReaders.<clinit>(XMLReaders.java:95)

       ... 42 more

 

Other parsers: Xalon-2.7.0.jar, xml-apis-est-1.3.04.jar, xml-apis.jar,
xercesImpl.jar, saxon.jar,  crimson.jar

 

From: Rolf Lear [mailto:[email protected]] 
Sent: Tuesday, August 21, 2012 1:23 PM
To: Craig Christophersen
Cc: [email protected]
Subject: Re: [jdom-interest] jdom2 runtime

 

Yes, there's a real advantage to the no-arg constructor ... it's simple ;-)

But, it should be working. What's the error message? Is there a stack trace?
Do you have any other XML Parsers in your classpath?

Rolf

On 21/08/2012 3:10 PM, Craig Christophersen wrote:

Thanks Rolf.

I am able to run new SAXBuilder(new XMLReaderSAX2Factory(false,
"org.apache.xerces.parsers.SAXParser")); OK.

I do have xercesImpl and xml-apis in my classpath.  But I cannot yet get the
no arg constructor (new SAXBuilder()) to run.

Is there some advantage to using the no arg constructor?  

Thanks, Craig

_______________________________________________
To control your jdom-interest membership:
http://www.jdom.org/mailman/options/jdom-interest/[email protected]