XML: JDOM + builder.build() hängt einfach

Status
Nicht offen für weitere Antworten.

jollyroger

Bekanntes Mitglied
Moin moin,

ich würde gern mit folgender simpler main-Methode + JDOM ein xml-Dokument parsen:

Code:
	public static void main(String[] args) throws JDOMException, IOException {
		
		// log configuration
		PropertyConfigurator.configure("conf/log4j.properties");
		logger =  Logger.getLogger(MCTool.class);
		// load amq default
		logger.debug("Loading Sax Builder....");
		SAXBuilder builder = new SAXBuilder(true);
		logger.debug("Loading conf/amq_default.xml....");
		Document doc = builder.build("conf/amq_default.xml");
		logger.debug("Loading AMQ arguments....");
                // do stuff....................
                }

Dummerweise bleibt es beim Aufruf "hängen", an den Logausgaben:

Code:
DEBUG [MCTool.main]: Loading Sax Builder....
DEBUG [MCTool.main]: Loading conf/amq_default.xml....

sehe ich ja eindeutig, das es an dieser Stelle hängt:

Code:
Document doc = builder.build("conf/amq_default.xml");

Die amq_default.xml sieht so aus:

Code:
<?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

</amq>
	
	<user>foo</user>
	<password>bar</password>
	<brokerUrl>tcp://localhost:61616</brokerUrl>
	
	<subject>CMD.debaser</subject>
	<topic>false</topic>
	
	<messageSize>255</messageSize>
	<timeToLive>255</timeToLive>
	 
	<transacted>false</transacted>
	<persistent>false</persistent>
	<clientId>mctool</clientId>  
</amq>

Mit Fehlermeldungen kann ich leider nicht dienen, da ja keine kommen.....

Jemand eine Idee woran das liegen könnte?
 

jollyroger

Bekanntes Mitglied
OMFG.

Den Wald vor lauter Bäumen nicht gesehen.

Aber ist das dann nicht ein Fehler im Parser?

Wieso nimmt der mir sowas ab? Ich hab doch validierung eingeschalten?

Mit einer passenden Fehlermeldung hätte ich das wohl schnell gesehen....

Danke für den Tip auf jeden Fall!
 

jollyroger

Bekanntes Mitglied
Hi,

Kommando zurück, es geht leider immer noch nicht....

So sieht meine xml-Datei jetzt aus:

Code:
 cat conf/amq_default.xml

Code:
<?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<amq>
        
        <user>foo</user>
        <password>bar</password>
        <brokerUrl>tcp://localhost:61616</brokerUrl>
        
        <subject>CMD.debaser</subject>
        <topic>false</topic>
        
        <messageSize>255</messageSize>
        <timeToLive>255</timeToLive>
         
        <transacted>false</transacted>
        
        <persistent>false</persistent>
        <!--# The purpose of the client identifier is to associate a connection and its objects
         # with a state maintained on behalf of the client by a provider.
         # The only such state identified by the JMS API is that required to support durable subscriptions.
         # A durable subscription represents a consumer registered with the topic destination that can be
         # inactive at the time the messages are sent to the topic. -->
        <clientId>mctool</clientId>
</amq>

Hmpfff, dann hing es gar nicht daran?

EDIT:

Hab gerade mal mein Dokument beim w3c validieren lassen, Ergebnis:

Code:
Schema validating with XSV 3.1-1 of 2007/12/11 16:20:05

    * Target: file:/usr/local/XSV/xsvlog/tmph8mWnGuploaded
         (Real name: amq_default.xml)
    * docElt: {None}amq
    * No declaration for document root found, validation was lax
    * The schema(s) used for schema-validation had
        no errors
    * No schema-validity problems were found in the target

Soweit also auch in Ordnung so wie ich das verstanden habe.

EDIT 2:

Lasse ich die DTD weg, kriege ich:

Code:
DEBUG [MCTool.main]: Loading Sax Builder....
DEBUG [MCTool.main]: Loading conf/cmd_default.xm....
Exception in thread "main" org.jdom.input.JDOMParseException: Error on line 3 of document file:///mnt/data/workspace/test_main/conf/cmd_default.xml: Document is invalid: no grammar found.
    at org.jdom.input.SAXBuilder.build(SAXBuilder.java:501)
    at org.jdom.input.SAXBuilder.build(SAXBuilder.java:928)
    at com.wincornixdorf.esf.mctool.cli.MCTool.main(MCTool.java:37)
Caused by: org.xml.sax.SAXParseException: Document is invalid: no grammar found.
    at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:195)
    at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.error(ErrorHandlerWrapper.java:131)

Hmmmm...

EDIT 3:

Ok, "würgaround" gefunden:

-> Validierung abgeschalten, sprich statt:


Code:
SAXBuilder builder = new SAXBuilder(true);

Code:
SAXBuilder builder = new SAXBuilder(false);

-> DTD rausgenommen, also statt:

Code:
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

Code:
<?xml version="1.0" encoding="ISO-8859-1" ?>

Offensichtlich wird versucht, die DTD über die URL zu laden, was nicht klappt weil ich hinter einem Proxy sitze?

DAS versteh ich nicht, weil so wie ich das verstanden ist diese (w3c) DTD doch bei jedem Parser eingebaut?

EDIT 4:

Auch bei der Verwendung eines alternativen Parser - Xerces - gleiches Resultat:

Code:
		SAXBuilder builder = new SAXBuilder("org.apache.xerces.parsers.SAXParser", true);

Anscheinend hab ich da wirklich was falsch und das hier

Offensichtlich wird versucht, die DTD über die URL zu laden, was nicht klappt weil ich hinter einem Proxy sitze?

DAS versteh ich nicht, weil so wie ich das verstanden ist diese (w3c) DTD doch bei jedem Parser eingebaut?

trifft das Problem.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
P XML Dokumente von JDOM an ein WebService senden! Allgemeine Java-Themen 2
F XML zu JTable mit JDOM Allgemeine Java-Themen 2
nrg JDOM Tabelle lesen Allgemeine Java-Themen 6
K Kein schließendes Tag bei leerem Element mit JDOM Allgemeine Java-Themen 8
P XML, JDOM Allgemeine Java-Themen 8
MQue jdom-1.0.zip Allgemeine Java-Themen 5
F Probleme beim speichern einer xml datei mit jdom Allgemeine Java-Themen 5
G Performance JDOM - DOM - eigene HashMap (SAX) Allgemeine Java-Themen 2
N Window Builder Allgemeine Java-Themen 2
Tobero Eclipse Window builder gibt es da sowas wie @ignore? Allgemeine Java-Themen 1
T ImageJ steuern mit Delphi C++ Builder etc. Allgemeine Java-Themen 1
8u3631984 Spring Component mit Builder Allgemeine Java-Themen 20
J Builder Klasse mit Lombok bauen Allgemeine Java-Themen 2
perlenfischer1984 Lombok Builder soll andere Klasse bauen Allgemeine Java-Themen 4
perlenfischer1984 Mit Lombok Builder Felder in Super Klasse füllen Allgemeine Java-Themen 12
perlenfischer1984 Java Builder vs Setter Allgemeine Java-Themen 1
V Stringbuffer/builder leeren Allgemeine Java-Themen 2
K Ein Guter GUI-Builder ? Allgemeine Java-Themen 9
G Sehr gutes Java-Framework(Gui-Builder) auf XML-Basis gesucht Allgemeine Java-Themen 21
zilti NetBeans-Frage zum GUI-Builder Allgemeine Java-Themen 10
B Process Builder Allgemeine Java-Themen 10
G Matisse GUI Builder suche Tutorials Allgemeine Java-Themen 12
S Build-Zeitpunt (Datum und Uhrzeit) irgendwie während der Laufzeit zugänglich machen..? Allgemeine Java-Themen 4
H Warning bei Build jar Allgemeine Java-Themen 9
D Eclipes Build Path Allgemeine Java-Themen 9
J build.xml erweitern Allgemeine Java-Themen 2
W IDEA IntelliJ Build-Management-Tool selbst programmieren Allgemeine Java-Themen 2
C JUNIT - ANT - build.xml Allgemeine Java-Themen 0
K NetBeans Ordner bei 'Clean&Build' automatisch in dist Verzeichnis kopieren Allgemeine Java-Themen 0
VfL_Freak Ant [build.xml] 'includeantruntime' was not set Allgemeine Java-Themen 2
G RXTX native library unter Linux in jar build angeben Allgemeine Java-Themen 4
M net4j in Eclipse, installiert aber nicht im Build-path Allgemeine Java-Themen 4
J Eclipse Java Build Path / Java Problem??? Allgemeine Java-Themen 13
G Eclipse Wie mit Ant build.xml externe Jar´s einbinden? Allgemeine Java-Themen 5
M Eclipse -> Build Path Allgemeine Java-Themen 8
D Eclipse-build vs. Jar-Ausführung Allgemeine Java-Themen 3
sparrow Ant build-files rekursiv aus ant aufrufen Allgemeine Java-Themen 3
S Automatischer Build Allgemeine Java-Themen 2
S Eclipse zeigt build.xml immer als fehlerhaft Allgemeine Java-Themen 12
L Eclipse VM/JRE für Ant Build benutzen Allgemeine Java-Themen 1
I Was ist ein binray / source Build ? Allgemeine Java-Themen 3
G DBzugriff funktioniert nach 'Build Main Project' nicht mehr Allgemeine Java-Themen 2

Ähnliche Java Themen

Neue Themen


Oben