SaxBuilder Exception bei Aufruf durch eine JSP-Seite

gustus

Grünschnabel
Hallo,
ich habe eine Java-Klasse geschrieben die XML-Dateien schreibt und auch lesen kann. Diese Klasse binde ich als Bean in eine JSP-Seite ein um dann von dort aus Formulardaten die XML-Datei zu füllen. Nun ist es so, dass ich die XML-Datei mit u.a. Sonderzeichen füllen will. Schreiben ist kein Problem, aber wenn ich die Datei dann wieder auslesen will kommt eine JDOMException. Das komische ist nur das, wenn ich die gleichen Schritte in einer Java-Datei ausführe, wird anstandslos gelesen. Die Exception wirft folgende Meldung(Traceprint):
exception
javax.servlet.ServletException: Error in building: no protocol: projekt.dtd
org.apache.jasper.runtime.PageContextImpl.doHandlePageException (PageContextImpl.java:825)
...

root cause: org.jdom.JDOMException: Error in building: no protocol: projekt.dtd
org.jdom.input.SAXBuilder.build(SAXBuilder.java:790) ...
ich kann die Meldung wirklich nicht deuten die projekt.dtd liegt direkt neben der XML-Datei im gleichen Ordner. Der Value der mit einer String mit Umlauten gefüllt wird und die Exception auslöst ist vom Typ #PCDATA. Weiss jemand Rat? Bin für jede Hilfe dankbar!
 
Quellcode

public Element getoneNode() throws Exception { // damit ich die Exception in der JSP zu sehen bekomme
Element temp = null;
SAXBuilder builder = new SAXBuilder();
builder.setValidation(false);
File datei = new File(pfad, dateiname);
if (datei.exists()) {
synchronized (datei) {
while (!(datei.canRead())) {
datei.wait();
}
Document doc = builder.build(datei);
....
}
}
}
und die Zeilen aus der JSP:
...
<jsp:useBean id="jdo" scope="session" class="inhalt,JDomer"/>
...
<%
pageContext.removeAttribute("jdo",PageContext.SESSION_SCOPE);
pageContext.removeAttribute("prog",PageContext.SESSION_SCOPE);
pageContext.removeAttribute("pars",PageContext.SESSION_SCOPE);
String projekt = request.getParameter("projekt");
jdo.resetVariablen();
if ((projekt != null) && (projekt.length() != 0)) {
String pfad = application.getRealPath("/XMLDocs/");
String datName = projekt + ".xml";
jdo.setPfad(pfad);
jdo.setDateiname(datName);
Element wurzel = jdo.getoneNode(); // hier der Aufruf der o.g. Methode, die zu der Exception führt (s. o)
if (wurzel!= null) {
...
}
}
 

Neue Beiträge

Zurück