[jdom-interest] Help with JDOM and JSP
Robert Schiffer
RSchiffer at fortpoint.com
Thu Aug 10 07:48:23 PDT 2000
Hello all,
I am trying to parse and print the contents of an XML file using JSP;
however, I get the following exception:
Thu Aug 10 10:40:55 EDT 2000:<E> <HTTP> java.lang.NoSuchMethodError:
org.w3c.dom.DocumentType: method getPublicId()Ljava/lang/String; not found
at org.jdom.input.DOMBuilder.buildTree(Compiled Code)
at org.jdom.input.DOMBuilder.buildTree(Compiled Code)
at org.jdom.input.DOMBuilder.build(DOMBuilder.java:230)
at servlets.jsp._xml._loadxml._jspService(Compiled Code)
at weblogic.servlet.jsp.JspBase.service(JspBase.java:27)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(Compiled
Code)
at
weblogic.servlet.internal.ServletContextImpl.invokeServlet(Compiled Code)
at weblogic.servlet.JSPServlet.service(Compiled Code)
at javax.servlet.http.HttpServlet.service(Compiled Code)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(Compiled
Code)
at
weblogic.servlet.internal.ServletContextImpl.invokeServlet(Compiled Code)
at
weblogic.servlet.internal.ServletContextImpl.invokeServlet(Compiled Code)
at weblogic.socket.MuxableSocketHTTP.invokeServlet(Compiled Code)
at weblogic.socket.MuxableSocketHTTP.execute(Compiled Code)
at weblogic.t3.srvr.ExecuteThread.run(Compiled Code)
java.lang.NoSuchMethodError is a run-time Error. The JSP code compiles, so
the appropriate packages (in this case jdom-b4.jar) are in my classpath.
Can anyone provide some insight into this error?
The following is the JSP page that receives the XML file. The error occurs
on the following line:
org.jdom.Document jdomDoc = (new DOMBuilder(false)).build(doc);
Here is the jsp page:
<html>
<body>
<table>
<tr>
<td><font face="arial,helvetica">
<%@ page language="java" %>
<%@ page import="org.w3c.dom.*" %>
<%@ page import="org.xml.sax.*" %>
<%@ page import="javax.xml.parsers.*" %>
<%@ page import="org.jdom.input.*" %>
<%
try {
com.oreilly.servlet.MultipartRequest multi = new
com.oreilly.servlet.MultipartReque
st(request, ".");
Enumeration files = multi.getFileNames();
while (files.hasMoreElements()) {
String name = (String)files.nextElement();
File f = multi.getFile(name);
if (f != null) {
DocumentBuilderFactory dbf = null;
DocumentBuilder db = null;
Document doc = null;
try {
dbf = DocumentBuilderFactory.newInstance();
db = dbf.newDocumentBuilder();
}
catch(ParserConfigurationException pce) {
pce.printStackTrace();
}
try {
doc = db.parse(f);
}
catch(IOException ioe) {
ioe.printStackTrace();
}
catch(SAXException saxe) {
saxe.printStackTrace();
}
org.jdom.Document jdomDoc = (new DOMBuilder(false)).build(doc);
try {
org.jdom.Element element = jdomDoc.getRootElement();
List children = element.getChildren();
for (int i=0; i<children.size(); i++) {
org.jdom.Element child = (org.jdom.Element)children.get(i);
System.out.println("MessageReader:XML document contains node
" + child.ge
tName() + " value is " + child.getContent()); }
}
catch (org.jdom.NoSuchElementException nsee) {
nsee.printStackTrace();
}
}
}
}
catch(NullPointerException npe) {
System.out.println(npe.toString());
}
catch(java.io.IOException ioe) {
System.out.println(ioe.toString());
} %>
</td>
</tr>
</table>
</form>
</body>
</html>
Thank you for your help.
Rob
____________________________________________
Robert Schiffer
F o r t P o i n t P a r t n e r s I n c .
rschiffer at fortpoint.com
www.fortpoint.com
More information about the jdom-interest
mailing list