Drittaccount
16-04-08, 14:58
Hallo zusammen,
ich habe ein Problem im Bereich XML Generierung. Kurzer Sachverhalt:
Eine Internetseite schickt eine Anfrage per XML an uns. Diese wird zunächst von einem JAVA Programm, welches sich auf einem Linuxserver (verwendet tomcat) in der DMZ befindet, bearbeitet und dann über eine .pcml an ein RPG Programm übergeben. Dieses Programm liefert dann wieder eine XML als Antwort welche dann an den Sender zurückgeschickt wird.
meine erste Vermutung:
irgendwas stimmt hier nicht ... :)
mein Problem:
Das Javaprogramm bringt seit ein paar Tagen nur noch einen Timeout zurück.
Am Programm selbst wurde aber anscheinend nichts geändert.
Da das Programm nicht von mir ist und ich hier kaum Java programmiere fällt es mir jetzt nicht ganz einfach den Fehler zu finden. Folgendes konnte ich schon testen:
Das Programm bekommt Daten zugeschickt,
(req.getContentLength() ist größer -1)
kann aber folgeden Zeile nicht ausführen:
InputStream iStream = req.getInputStream();
protected void getXMLRequest(HttpServletRequest req) throws IOException,
JDOMException {
if (req.getContentLength() == -1) {
log("contentlänge == -1");
return;
} else {
DOMBuilder builder = new DOMBuilder(true);
InputStream iStream = req.getInputStream();
XMLRequest = builder.build(iStream);
iStream.close();
return;
}
}
auf der Linuxconsole bekomme ich folgende Fehlermeldung:
org.jdom.JDOMException: Error on line 2: org.apache.crimson.parser/P-082 http://www.....de/shop/dtd/...dtd
at org.jdom.input.DOMBuilder.build(DOMBuilder.java:27 4)
at Lieferterminanfrage.getXMLRequest(Lieferterminanfr age.java:52)
at Lieferterminanfrage.service(Lieferterminanfrage.ja va:92)
at javax.servlet.http.HttpServlet.service(HttpServlet .java:853)
at org.apache.tomcat.core.ServletWrapper.handleReques t(ServletWrapper.java:503)
at org.apache.tomcat.core.ServletWrapper.handleReques t(ServletWrapper.java:597)
at org.apache.tomcat.servlets.InvokerServlet.service( InvokerServlet.java:257)
at javax.servlet.http.HttpServlet.service(HttpServlet .java:853)
at org.apache.tomcat.core.ServletWrapper.handleReques t(ServletWrapper.java:503)
at org.apache.tomcat.core.ContextManager.service(Cont extManager.java:559)
at org.apache.tomcat.service.http.HttpConnectionHandl er.processConnection(HttpConnectionHandler.java:16 0)
at org.apache.tomcat.service.TcpConnectionThread.run( SimpleTcpEndpoint.java:338)
at java.lang.Thread.run(Thread.java:484)
Root cause: java.net.NoRouteToHostException: Die Wartezeit für die Verbindung ist abgelaufen
at org.apache.crimson.parser.Parser2.fatal(Parser2.ja va:3035)
at org.apache.crimson.parser.Parser2.externalParamete rEntity(Parser2.java:2723)
at org.apache.crimson.parser.Parser2.maybeDoctypeDecl (Parser2.java:1154)
at org.apache.crimson.parser.Parser2.parseInternal(Pa rser2.java:488)
at org.apache.crimson.parser.Parser2.parse(Parser2.ja va:304)
at org.apache.crimson.parser.XMLReaderImpl.parse(XMLR eaderImpl.java:433)
at org.apache.crimson.jaxp.DocumentBuilderImpl.parse( DocumentBuilderImpl.java:179)
at javax.xml.parsers.DocumentBuilder.parse(DocumentBu ilder.java:86)
at java.lang.reflect.Method.invoke(Native Method)
at org.jdom.adapters.JAXPDOMAdapter.getDocument(JAXPD OMAdapter.java:146)
at org.jdom.input.DOMBuilder.build(DOMBuilder.java:23 0)
at Lieferterminanfrage.getXMLRequest(Lieferterminanfr age.java:52)
at Lieferterminanfrage.service(Lieferterminanfrage.ja va:92)
at javax.servlet.http.HttpServlet.service(HttpServlet .java:853)
at org.apache.tomcat.core.ServletWrapper.handleReques t(ServletWrapper.java:503)
at org.apache.tomcat.core.ServletWrapper.handleReques t(ServletWrapper.java:597)
at org.apache.tomcat.servlets.InvokerServlet.service( InvokerServlet.java:257)
at javax.servlet.http.HttpServlet.service(HttpServlet .java:853)
at org.apache.tomcat.core.ServletWrapper.handleReques t(ServletWrapper.java:503)
at org.apache.tomcat.core.ContextManager.service(Cont extManager.java:559)
at org.apache.tomcat.service.http.HttpConnectionHandl er.processConnection(HttpConnectionHandler.java:16 0)
at org.apache.tomcat.service.TcpConnectionThread.run( SimpleTcpEndpoint.java:338)
at java.lang.Thread.run(Thread.java:484)
mit dieser Meldung kann ich halt leider nicht viel anfangen ... kann mir hier vielleicht jmd. helfen?
Wie kann es zu so einem Fehler kommen?
Wurde der tomcat vielleicht falsch gestartet?
Fehlen vielleicht die Zusatzklassen jdom.jar, servlet.jar ... ?
Muss man hier etwas beim Kompilieren beachten? -> Ort der Zusatzklassen lokal und auf dem Server?
Bin um jeden Tip dankbar ...
ich habe ein Problem im Bereich XML Generierung. Kurzer Sachverhalt:
Eine Internetseite schickt eine Anfrage per XML an uns. Diese wird zunächst von einem JAVA Programm, welches sich auf einem Linuxserver (verwendet tomcat) in der DMZ befindet, bearbeitet und dann über eine .pcml an ein RPG Programm übergeben. Dieses Programm liefert dann wieder eine XML als Antwort welche dann an den Sender zurückgeschickt wird.
meine erste Vermutung:
irgendwas stimmt hier nicht ... :)
mein Problem:
Das Javaprogramm bringt seit ein paar Tagen nur noch einen Timeout zurück.
Am Programm selbst wurde aber anscheinend nichts geändert.
Da das Programm nicht von mir ist und ich hier kaum Java programmiere fällt es mir jetzt nicht ganz einfach den Fehler zu finden. Folgendes konnte ich schon testen:
Das Programm bekommt Daten zugeschickt,
(req.getContentLength() ist größer -1)
kann aber folgeden Zeile nicht ausführen:
InputStream iStream = req.getInputStream();
protected void getXMLRequest(HttpServletRequest req) throws IOException,
JDOMException {
if (req.getContentLength() == -1) {
log("contentlänge == -1");
return;
} else {
DOMBuilder builder = new DOMBuilder(true);
InputStream iStream = req.getInputStream();
XMLRequest = builder.build(iStream);
iStream.close();
return;
}
}
auf der Linuxconsole bekomme ich folgende Fehlermeldung:
org.jdom.JDOMException: Error on line 2: org.apache.crimson.parser/P-082 http://www.....de/shop/dtd/...dtd
at org.jdom.input.DOMBuilder.build(DOMBuilder.java:27 4)
at Lieferterminanfrage.getXMLRequest(Lieferterminanfr age.java:52)
at Lieferterminanfrage.service(Lieferterminanfrage.ja va:92)
at javax.servlet.http.HttpServlet.service(HttpServlet .java:853)
at org.apache.tomcat.core.ServletWrapper.handleReques t(ServletWrapper.java:503)
at org.apache.tomcat.core.ServletWrapper.handleReques t(ServletWrapper.java:597)
at org.apache.tomcat.servlets.InvokerServlet.service( InvokerServlet.java:257)
at javax.servlet.http.HttpServlet.service(HttpServlet .java:853)
at org.apache.tomcat.core.ServletWrapper.handleReques t(ServletWrapper.java:503)
at org.apache.tomcat.core.ContextManager.service(Cont extManager.java:559)
at org.apache.tomcat.service.http.HttpConnectionHandl er.processConnection(HttpConnectionHandler.java:16 0)
at org.apache.tomcat.service.TcpConnectionThread.run( SimpleTcpEndpoint.java:338)
at java.lang.Thread.run(Thread.java:484)
Root cause: java.net.NoRouteToHostException: Die Wartezeit für die Verbindung ist abgelaufen
at org.apache.crimson.parser.Parser2.fatal(Parser2.ja va:3035)
at org.apache.crimson.parser.Parser2.externalParamete rEntity(Parser2.java:2723)
at org.apache.crimson.parser.Parser2.maybeDoctypeDecl (Parser2.java:1154)
at org.apache.crimson.parser.Parser2.parseInternal(Pa rser2.java:488)
at org.apache.crimson.parser.Parser2.parse(Parser2.ja va:304)
at org.apache.crimson.parser.XMLReaderImpl.parse(XMLR eaderImpl.java:433)
at org.apache.crimson.jaxp.DocumentBuilderImpl.parse( DocumentBuilderImpl.java:179)
at javax.xml.parsers.DocumentBuilder.parse(DocumentBu ilder.java:86)
at java.lang.reflect.Method.invoke(Native Method)
at org.jdom.adapters.JAXPDOMAdapter.getDocument(JAXPD OMAdapter.java:146)
at org.jdom.input.DOMBuilder.build(DOMBuilder.java:23 0)
at Lieferterminanfrage.getXMLRequest(Lieferterminanfr age.java:52)
at Lieferterminanfrage.service(Lieferterminanfrage.ja va:92)
at javax.servlet.http.HttpServlet.service(HttpServlet .java:853)
at org.apache.tomcat.core.ServletWrapper.handleReques t(ServletWrapper.java:503)
at org.apache.tomcat.core.ServletWrapper.handleReques t(ServletWrapper.java:597)
at org.apache.tomcat.servlets.InvokerServlet.service( InvokerServlet.java:257)
at javax.servlet.http.HttpServlet.service(HttpServlet .java:853)
at org.apache.tomcat.core.ServletWrapper.handleReques t(ServletWrapper.java:503)
at org.apache.tomcat.core.ContextManager.service(Cont extManager.java:559)
at org.apache.tomcat.service.http.HttpConnectionHandl er.processConnection(HttpConnectionHandler.java:16 0)
at org.apache.tomcat.service.TcpConnectionThread.run( SimpleTcpEndpoint.java:338)
at java.lang.Thread.run(Thread.java:484)
mit dieser Meldung kann ich halt leider nicht viel anfangen ... kann mir hier vielleicht jmd. helfen?
Wie kann es zu so einem Fehler kommen?
Wurde der tomcat vielleicht falsch gestartet?
Fehlen vielleicht die Zusatzklassen jdom.jar, servlet.jar ... ?
Muss man hier etwas beim Kompilieren beachten? -> Ort der Zusatzklassen lokal und auf dem Server?
Bin um jeden Tip dankbar ...