JBoss AS is bundling the library jaxen.jar. As it seems, jaxen.jar somehow has a dependency on jdom.jar. Namely, I just encountered the following exception:
21:21:03,800 ERROR [STDERR] Caused by: java.lang.NoClassDefFoundError: org/jdom/Parent 21:21:03,800 ERROR [STDERR] at org.jaxen.jdom.JDOMXPath.<init>(JDOMXPath.java:91) 21:21:03,800 ERROR [STDERR] at org.apache.commons.feedparser.RSSFeedParser.parse(RSSFeedParser.java:54) 21:21:03,801 ERROR [STDERR] at org.apache.commons.feedparser.FeedParserImpl.parse(FeedParserImpl.java:184) 21:21:03,801 ERROR [STDERR] ... 77 more
In this case, the exception occurs when the following statement is executed:
JDOMXPath xpath = new JDOMXPath( "/descendant::*[local-name() = 'channel']" );
Apparently, JDOMXPath has some (transitive) dependency on org.jdom.Parent, which should be provided by the jar jdom.jar. Yet, no such jar is provided by JBoss AS nor does the type org.jdom.Parent seems to be available anywhere.
Should I bundle my own jaxen.jar with my (ear) application? I currently have jdom.jar as a library in the web module, but of course the class loader that has loaded jaxen.jar from the jboss common/lib can't pick that one up.
I also noticed that the JBoss AS source distribution contains jaxen.jar, but this contains only .class files and not any source. Shouldn't the JBoss AS source distribution contain the source of third party dependencies and not the binaries?