<html>

<head>
<meta http-equiv=Content-Type content="text/html; charset=us-ascii">
<meta name=Generator content="Microsoft Word 11 (filtered)">
<style>
<!--
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman";}
a:link, span.MsoHyperlink
        {color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {color:#606420;
        text-decoration:underline;}
span.EmailStyle17
        {font-family:Arial;
        color:windowtext;}
@page Section1
        {size:8.5in 11.0in;
        margin:1.0in 1.25in 1.0in 1.25in;}
div.Section1
        {page:Section1;}
-->
</style>

</head>

<body lang=EN-US link=blue vlink="#606420">

<div class=Section1>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>I get a NoClassDefFoundError for the org/jdom/Document class
when I try to execute an XPath expression on a web application deployed to Oracle
Application Server 9052 (yeah I know, it&#8217;s a pos).&nbsp; It makes
absolutely no sense because I&#8217;ve had no problems with JDOM for parsing
and walking the document tree in the same application.&nbsp; This exception
only occurs when I try to execute an XPath expression to get a specific element
in the document.&nbsp; The same war application works correctly in Tomcat 5.</span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>&nbsp;</span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>This is the function where the exception is thrown:</span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>&nbsp;&nbsp;&nbsp; private Element findItemElement(Document
d, String id) {</span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String expr =
&quot;/ItemReviewData/ContentDictionary/Items/Item[@id='&quot; + id +
&quot;']&quot;;</span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>&nbsp;</span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; try {</span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
XPath xpath = XPath.newInstance(expr);</span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
return (Element) xpath.selectSingleNode(d);</span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } catch
(JDOMException e) {</span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
e.printStackTrace();</span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } catch
(Exception e) {</span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
e.printStackTrace();</span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return null;</span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>&nbsp;&nbsp;&nbsp; }</span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>&nbsp;</span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>&nbsp;</span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>This is the stack trace:</span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>500 Internal Server Error</span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>java.lang.NoClassDefFoundError: org/jdom/Document&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at
org.jaxen.jdom.DocumentNavigator.getDocumentNode(DocumentNavigator.java:313)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at
org.jaxen.expr.DefaultAbsoluteLocationPath.evaluate(DefaultAbsoluteLocationPath.java:113)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at
org.jaxen.expr.DefaultXPathExpr.asList(DefaultXPathExpr.java:107)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at
org.jaxen.BaseXPath.selectNodesForContext(BaseXPath.java:716)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at
org.jaxen.BaseXPath.selectNodes(BaseXPath.java:239)&nbsp;&nbsp;&nbsp; at
org.jaxen.BaseXPath.selectSingleNode(BaseXPath.java:262)&nbsp;&nbsp;&nbsp;&nbsp; at
org.jdom.xpath.JaxenXPath.selectSingleNode(JaxenXPath.java:153)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at
org.nbme.fbp.ir.service.impl.XmlBluePrintServiceImpl.findItemElement(XmlBluePrintServiceImpl.java:233)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at
org.nbme.fbp.ir.service.impl.XmlBluePrintServiceImpl.updateItemReviewStatus(XmlBluePrintServiceImpl.java:170)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at
org.nbme.fbp.ir.action.itemreview.ItemPageAction.executeAction(ItemPageAction.java:35)&nbsp;&nbsp; at
org.nbme.fbp.ir.action.SpringBaseAction.execute(SpringBaseAction.java:39)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:419)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:224)&nbsp;&nbsp; at
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)&nbsp;&nbsp;&nbsp;&nbsp; at
org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at
javax.servlet.http.HttpServlet.service(HttpServlet.java:740)&nbsp; at
javax.servlet.http.HttpServlet.service(HttpServlet.java:853)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at
com.evermind[Oracle Application Server Containers for J2EE 10g (9.0.4.1.0)].server.http.ResourceFilterChain.doFilter(ResourceFilterChain.java:65)&nbsp;&nbsp;&nbsp; at
clime.messadmin.core.MessAdminFilter.doFilter(MessAdminFilter.java:166)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at
com.evermind[Oracle Application Server Containers for J2EE 10g
(9.0.4.1.0)].server.http.EvermindFilterChain.doFilter(EvermindFilterChain.java:16)&nbsp;&nbsp;&nbsp;&nbsp; at
org.nbme.common.security.SecurityFilter.doFilter(SecurityFilter.java:70)&nbsp;&nbsp;&nbsp; at
com.evermind[Oracle Application Server Containers for J2EE 10g
(9.0.4.1.0)].server.http.EvermindFilterChain.doFilter(EvermindFilterChain.java:20)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at
com.opensymphony.module.sitemesh.filter.PageFilter.doFilter(PageFilter.java:39)&nbsp;&nbsp; at
com.evermind[Oracle Application Server Containers for J2EE 10g
(9.0.4.1.0)].server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:600)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at
com.evermind[Oracle Application Server Containers for J2EE 10g
(9.0.4.1.0)].server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:317)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at
com.evermind[Oracle Application Server Containers for J2EE 10g
(9.0.4.1.0)].server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:793)&nbsp; at
com.evermind[Oracle Application Server Containers for J2EE 10g
(9.0.4.1.0)].server.http.AJPRequestHandler.run(AJPRequestHandler.java:208)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at
com.evermind[Oracle Application Server Containers for J2EE 10g
(9.0.4.1.0)].server.http.AJPRequestHandler.run(AJPRequestHandler.java:125)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at
com.evermind[Oracle Application Server Containers for J2EE 10g
(9.0.4.1.0)].util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:192)&nbsp;&nbsp;&nbsp; at
java.lang.Thread.run(Thread.java:534)</span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>&nbsp;</span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>If anybody has any ideas, I&#8217;ll be eternally grateful.&nbsp;
I&#8217;m pretty sure it has to do with Oracle but I would love to find a
workaround.</span></font></p>

</div>

</body>

</html>