-
Ich denke, dass die falsche XML-Validierung ein Folgefehler ist.
Der vorangegangene Fehler java.net.NoRouteToHostException:
mit Zeitüberlauf weißt auf ein Netzwerkproblem hin.
Normalerweise hat man dieses Problem bei Socketkommunikation, wenn das System keinen Rückkanal aufbauen kann.
Auf einem Webserver wundert mich das zwar, aber wer weiß.
1.) Kannst auch eine Anfrage auch innerhalb der DMZ stellen?
2.) Kannst du an den Javaprogrammen was ändern?
3.) Außerdem habe ich etwas Zweifel an der Fehlerzeile "InputStream iStream ...".
Der Stacktrace zeigt JDOM-Programme, in dieser Zeile sind nur Java.io.* und das Servlet - nocheinmal prüfen!
/Robert
-
@RobertPic:
zu Punk1:
Wäre denke ich möglich, aber mit viel Aufwand.
zu Punkt 2:
die Quellen liegen vor. Ich kann also den Code ändern.
zu Punkt 3:
ich habe folgendes getestet:
Code:
if (req.getContentLength() == -1) {
log("contentlänge == -1");
return;
} else {
DOMBuilder builder = new DOMBuilder(true);
log("DOMBuilder builder = new DOMBuilder(true);");
InputStream iStream = req.getInputStream();
log("InputStream iStream = req.getInputStream();");
XMLRequest = builder.build(iStream);
log("XMLRequest = builder.build(iStream);");
iStream.close();
log("iStream.close();");
return;
}
wenn er also eine Logzeile schreibt hat er auch den Befehl ausgeführt ...
XMLRequest = builder.build(iStream); wird leider nicht ausgeführt.
mfg - Drittaccount
-
Hallo
Baue Folgendes nach dem InputStream =... (bzw. log) ein:
PHP-Code:
StringBuffer xml = new StringBuffer(); byte[] b = new byte[4096]; for (int n; (n = iStream.read(b)) != -1;) { xml.append(new String(b, 0, n)); } ByteArrayInputStream xmlStream = new ByteArrayInputStream(xml.toString().getBytes());
danach noch ein
log("XML-Inhalt: " + xml);
und dahinter musst du den build(iStream) durch build(xmlStream) ersetzen.
Wenn es keine Netzwerkproblem ist, solltest du die Anfrage im Log haben und weiterforschen können. Wenn er jetzt in der Schleife verstirbt, ist es zu 99,9% kein XML-Problem.
Der Teil ist nicht besonders sauber geschrieben (beim Hin- und Herwandeln könnten Umlaute verloren gehen), also nach der Problembehebung besser wieder entfernen.
/Robert
-
@RobertPic:
Vielen Dank für deinen Tip. Im Log kommt jetzt die XML-Anfrage an.
Es scheint also kein Netzwerkproblem zu sein.
Leider funktioniert der XMLRequest = builder.build(xmlStream); aber auch nicht ...
Woran kann das liegen ?
mfg - Drittaccount
-
@Fuerchau:
So wie die Fehlermeldung aussieht (das ist die Erste), kann der Parser das XML-Dokument nicht verarbeiten, da es der zugeordneten DTD nicht entspricht.
Möglicherweise stimmt ja hier was nicht ... ich finde zwar keinen Fehler, aber vielleicht übersehe ich ja etwas.
Also im Log kommt folgendes an:
Code:
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE LieferterminanfrageKopf SYSTEM "http://www.shk-branchenportal.de/shop/dtd/LieferterminanfrageKopf.dtd">
<LieferterminanfrageKopf>
<Message id="0000000112435" sender="1331" receiver="121" passwd="test"/>
<Auftragsdaten>
<kndnr>001100</kndnr>
<ordernr>A00XXXXXXX</ordernr>
<ghbnr></ghbnr>
<datumvon></datumvon>
<datumbis></datumbis>
</Auftragsdaten>
</LieferterminanfrageKopf>
Und die Layoutdatei:
http://www.shk-branchenportal.de/shop/dtd/LieferterminanfrageKopf.dtd
Code:
<!ELEMENT LieferterminanfrageKopf (Message, Auftragsdaten)>
<!ELEMENT Message EMPTY>
<!ATTLIST Message
id CDATA #REQUIRED
sender CDATA #REQUIRED
receiver CDATA #REQUIRED
passwd CDATA #IMPLIED>
<!ELEMENT Auftragsdaten (kndnr, ordernr?, ghbnr?, datumvon?, datumbis?)>
<!ELEMENT kndnr (#PCDATA)>
<!ELEMENT ordernr (#PCDATA)>
<!ELEMENT ghbnr (#PCDATA)>
<!ELEMENT datumvon (#PCDATA)>
<!ELEMENT datumbis (#PCDATA)>
mfg - Drittaccount
-
Kommt jetzt immer noch die Exception vom 1. Posting?
Wenn ja, tippe ich darauf, dass er beim Versuch das DTD-File zu lesen (über http) nicht ins Internet kommt.
/Robert
-
@RobertPic:
du meinst warscheinlich diese hier:
( -> also doch ein Netzwerkproblem ?!)
dann werd ich wohl einen unserer Netzwerkspezialisten aufsuchen müssen ...
Vielen Dank nochmals für die Unterstützung.
Code:
org.jdom.JDOMException: Error on line 2: org.apache.crimson.parser/P-082 http://www.shk-branchenportal.de/sho...nfrageKopf.dtd
at org.jdom.input.DOMBuilder.build(DOMBuilder.java:274)
at Lieferterminanfrage.getXMLRequest(Lieferterminanfrage.java:72)
at Lieferterminanfrage.service(Lieferterminanfrage.java:121)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.apache.tomcat.core.ServletWrapper.handleRequest(ServletWrapper.java:503)
at org.apache.tomcat.core.ServletWrapper.handleRequest(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.handleRequest(ServletWrapper.java:503)
at org.apache.tomcat.core.ContextManager.service(ContextManager.java:559)
at org.apache.tomcat.service.http.HttpConnectionHandler.processConnection(HttpConnectionHandler.java:160)
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.java:3035)
at org.apache.crimson.parser.Parser2.externalParameterEntity(Parser2.java:2723)
at org.apache.crimson.parser.Parser2.maybeDoctypeDecl(Parser2.java:1154)
at org.apache.crimson.parser.Parser2.parseInternal(Parser2.java:488)
at org.apache.crimson.parser.Parser2.parse(Parser2.java:304)
at org.apache.crimson.parser.XMLReaderImpl.parse(XMLReaderImpl.java:433)
at org.apache.crimson.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:179)
at javax.xml.parsers.DocumentBuilder.parse(DocumentBuilder.java:86)
at java.lang.reflect.Method.invoke(Native Method)
at org.jdom.adapters.JAXPDOMAdapter.getDocument(JAXPDOMAdapter.java:146)
at org.jdom.input.DOMBuilder.build(DOMBuilder.java:230)
at Lieferterminanfrage.getXMLRequest(Lieferterminanfrage.java:72)
at Lieferterminanfrage.service(Lieferterminanfrage.java:121)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.apache.tomcat.core.ServletWrapper.handleRequest(ServletWrapper.java:503)
at org.apache.tomcat.core.ServletWrapper.handleRequest(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.handleRequest(ServletWrapper.java:503)
at org.apache.tomcat.core.ContextManager.service(ContextManager.java:559)
at org.apache.tomcat.service.http.HttpConnectionHandler.processConnection(HttpConnectionHandler.java:160)
at org.apache.tomcat.service.TcpConnectionThread.run(SimpleTcpEndpoint.java:338)
at java.lang.Thread.run(Thread.java:484)
mfg - Drittaccount
-
Du kannst den Fehler noch weiter einschränken, führe auf dem Linuxserver folgendes Befehle aus:
1.) Kann die Adresse als IP umgesetzt werden? Anm. Das Webserver nicht auf Pings antworten, ist normal. Es geht darum, ob der Name aufgelöst werden kann.
Code:
ping www.shk-branchenportal.de
2.) Download der Datei
Code:
wget http://www.shk-branchenportal.de/shop/dtd/LieferterminanfrageKopf.dtd
Linuxbefehl zum Downloaden einer html-Seite. Liefert vielleicht noch genauere Fehler.
/Robert
-
» zu Punkt 1:
Code:
ping www.shk-branchenportal.de
PING www.shk-branchenportal.de (80.66.16.142): 56 data bytes
Die Adresse scheint er also richtig aufzulösen ...
» zu Punkt 2:
Code:
wget http://www.shk-branchenportal.de/shop/dtd/LieferterminanfrageKopf.dtd
--14:32:43-- http://www.shk-branchenportal.de:80/shop/dtd/LieferterminanfrageKopf.dtd
=> `LieferterminanfrageKopf.dtd'
Connecting to www.shk-branchenportal.de:80...
connect: Connection timed out
Retrying.
--14:35:52-- http://www.shk-branchenportal.de:80/shop/dtd/LieferterminanfrageKopf.dtd
(try: 2) => `LieferterminanfrageKopf.dtd'
Connecting to www.shk-branchenportal.de:80...
connect: Connection timed out
Retrying.
--14:39:01-- http://www.shk-branchenportal.de:80/shop/dtd/LieferterminanfrageKopf.dtd
(try: 3) => `LieferterminanfrageKopf.dtd'
Connecting to www.shk-branchenportal.de:80...
connect: Connection timed out
Retrying.
--14:42:10-- http://www.shk-branchenportal.de:80/shop/dtd/LieferterminanfrageKopf.dtd
(try: 4) => `LieferterminanfrageKopf.dtd'
Connecting to www.shk-branchenportal.de:80...
Wie du schon richtig getippt hast hat der Linuxserver wohl wirklich Probleme mit dem Herunterladen der .dtd Datei.
mfg - Drittaccount
-
Noch ein letzter Hinweis: Das Problem kann am Linuxserver oder an der Firewall liegen.
Wenn es vorher ging, müsst ihr irgendwas daran verstellt haben.
/Robert
-
[erledigt]
@RobertPic:
Problem gelöst. Es funktioniert jetzt wieder. Auf dem Linuxserver war eine falsche IP (alter SHK Server) in der Hosttabelle zugeordnet.
Durch eine Umstellung auf einen neuen Server hatte sich diese geändert. Da der alte Server weiter lief fiel es bei der Umstellung nicht auf, dass die .dtd Anfrage weiterhin auf den alten Server ging. Jetzt wurde der alte Server aber abgeschalten und es kam zu diesem Problem ...
mfg - Drittaccount
Similar Threads
-
By Stoeberl in forum NEWSboard Programmierung
Antworten: 8
Letzter Beitrag: 10-01-07, 10:58
-
By vige1000 in forum NEWSboard Linux
Antworten: 4
Letzter Beitrag: 21-12-06, 11:56
-
By Stoeberl in forum NEWSboard Programmierung
Antworten: 11
Letzter Beitrag: 26-10-06, 10:07
-
By Flappes in forum IBM i Hauptforum
Antworten: 0
Letzter Beitrag: 06-10-06, 08:39
-
By MikRom in forum NEWSboard Programmierung
Antworten: 1
Letzter Beitrag: 15-08-05, 09:06
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- You may not post attachments
- You may not edit your posts
-
Foren-Regeln
|
Erweiterte Foren Suche
Google Foren Suche
Forum & Artikel Update eMail
AS/400 / IBM i
Server Expert Gruppen
Unternehmens IT
|
Kategorien online Artikel
- Big Data, Analytics, BI, MIS
- Cloud, Social Media, Devices
- DMS, Archivierung, Druck
- ERP + Add-ons, Business Software
- Hochverfügbarkeit
- Human Resources, Personal
- IBM Announcements
- IT-Karikaturen
- Leitartikel
- Load`n`go
- Messen, Veranstaltungen
- NEWSolutions Dossiers
- Programmierung
- Security
- Software Development + Change Mgmt.
- Solutions & Provider
- Speicher – Storage
- Strategische Berichte
- Systemmanagement
- Tools, Hot-Tips
Auf dem Laufenden bleiben
|
Bookmarks