hôte inconnu exception lors de l'analyse d'un fichier xml
quand je suis en train d'essayer de parser un xml, je reçois des exceptions suivantes :-
java.net.UnknownHostException: hibernate.sourceforge.net
at java.net.AbstractPlainSocketImpl.connect(Unknown Source)
at java.net.PlainSocketImpl.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at sun.net.NetworkClient.doConnect(Unknown Source)
at sun.net.www.http.HttpClient.openServer(Unknown Source)
at sun.net.www.http.HttpClient.openServer(Unknown Source)
at sun.net.www.http.HttpClient.<init>(Unknown Source)
at sun.net.www.http.HttpClient.New(Unknown Source)
at sun.net.www.http.HttpClient.New(Unknown Source)
at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(Unknown Source)
at sun.net.www.protocol.http.HttpURLConnection.plainConnect(Unknown Source)
at sun.net.www.protocol.http.HttpURLConnection.connect(Unknown Source)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source)
at org.apache.xerces.impl.XMLEntityManager.setupCurrentEntity(Unknown Source)
at org.apache.xerces.impl.XMLEntityManager.startEntity(Unknown Source)
at org.apache.xerces.impl.XMLEntityManager.startDTDEntity(Unknown Source)
at org.apache.xerces.impl.XMLDTDScannerImpl.setInputSource(Unknown Source)
at org.apache.xerces.impl.XMLDocumentScannerImpl$DTDDispatcher.dispatch(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
at org.apache.xerces.parsers.DOMParser.parse(Unknown Source)
at org.apache.xerces.jaxp.DocumentBuilderImpl.parse(Unknown Source)
at javax.xml.parsers.DocumentBuilder.parse(Unknown Source)
Le code que j'utilise pour parser le xml est ci-dessous:-
File hbmFile = new File(hbmFileName);
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
Document doc = db.parse(hbmFile);
je suis en train d'essayer de parser le xml qui a été écrit pour hibernate, effectivement c'est un fichier de mapping hibernate.
Le xml que je suis en train d'analyser ci-dessous:-
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="org.hibernate.entity.Student" table="table_student">
<id name="rollNo" column="rool_no" type="int"/>
<property name="name" column="st_name" type="string"/>
<set name="marks" table="table_marks">
<key column="roll_no"/>
<composite-element class="org.hibernate.entity.StudentMarks">
<property name="subject" column="st_sub"/>
<property name="marks" column="st_marks"/>
</composite-element>
</set>
</class>
</hibernate-mapping>
S'il vous plaît aider.
Eu le même problème aujourd'hui, les réponses données ici peuvent travailler, mais il n'est pas nécessaire de désactiver la validation, parce que Hibernate peut résoudre Dtd localement (voir ce répondre). Mon DTD lien était erroné:
http://hibernate.org
au lieu de http://www.hibernate.org
.OriginalL'auteur M.J. | 2010-10-23
Vous devez vous connecter pour publier un commentaire.
L'analyseur est en train de télécharger la DTD de
hibernate.sourceforge.net
afin de valider le XML analysé.Toutefois, le client DNS sur la machine ne peut pas résoudre le nom d'hôte pour une raison quelconque (il résout amende de
82.98.86.175
sur ma machine).Pour éviter ce problème, vous devez indiquer à la
DocumentBuilderFactory
d'ignorer la DTD:Voir Faire DocumentBuilder.analyser ignorer les références DTD.
Oui, il est. Voir ma réponse mis à jour.
download.oracle.com/javase/1.5.0/docs/api/javax/xml/parsers/...
salut, j'ai essayé avec de l'extrait de code que vous m'avez donné mais maintenant, je me fais une autre erreur. java.lang.AbstractMethodError: javax.xml.les parseurs.DocumentBuilderFactory.setFeature(Ljava/lang/String;Z)V
On dirait que votre document constructeur de l'usine ne prend pas en charge
setFeature()
. Cela fonctionne avec seulementdbf.setValidating(false);
?OriginalL'auteur Frédéric Hamidi
j'ai utilisé le code suivant et cela fonctionne bien pour moi..
OriginalL'auteur M.J.
Je suis aussi en train d'essayer de lire à partir d'un fichier xml avec dtd tag
et le code
J'avais la même erreur.
Le serveur où le code est déployé n'a pas accès à w3.org. Quand j'ai ouvert w3.org dans un navigateur, c'est l'ouverture de connection timed out page. J'ai donné l'accès à w3.org et il a résolu le problème.
OriginalL'auteur senthilraja