Hibernate erreur, peut-être avec la déclaration DTD

Notre projet de l'utilisation de Hibernate-programme de Configuration de notre SessionFactory et ces. Je viens de migré nous à partir de la version 3 à la version 4 de mise en veille prolongée. Maintenant, je reçois le message d'erreur "type d'Élément "hibernate-mapping" doivent être déclarés." qui, dit-on, un SaxParseException. C'est super et tout, mais j'ai vérifié mon WEB-INF/lib et mise en veille prolongée de la version 4 de base .le fichier jar est là, donc, c'est sur le chemin de la classe.

Au début, je pensais que c'est parce que l'équipe d'Hibernate migré à partir de

<!DOCTYPE hibernate-mapping PUBLIC 
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">

à

<!DOCTYPE hibernate-mapping PUBLIC 
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">

Mais cela ne veut pas réparer l'erreur. Ce qui se passe? Dans un autre projet où je suis en utilisant le fichier de configuration XML pour la mise en veille prolongée, j'ai fait la même migration, et il s'est bien passé. Veuillez noter que sur mon environnement classpath doit être utilisé, la DTD ne peut pas être téléchargé à partir d'internet ou quelque chose comme ça. Il ne devrait pas être de toute façon.

edit: voici l'exception comme demandé:

Caused by: org.xml.sax.SAXParseException; systemId: ; lineNumber: 6; columnNumber: 20; Element type "hibernate-mapping" must be declared.
        at org.apache.xerces.framework.XMLParser.reportError(XMLParser.java:1213)
        at org.apache.xerces.validators.common.XMLValidator.reportRecoverableXMLError(XMLValidator.java:1807)
        at org.apache.xerces.validators.common.XMLValidator.validateElementAndAttributes(XMLValidator.java:3633)
        at org.apache.xerces.validators.common.XMLValidator.callStartElement(XMLValidator.java:1229)
        at org.apache.xerces.framework.XMLDocumentScanner$ContentDispatcher.dispatch(XMLDocumentScanner.java:938)
        at org.apache.xerces.framework.XMLDocumentScanner.parseSome(XMLDocumentScanner.java:381)
        at org.apache.xerces.framework.XMLParser.parse(XMLParser.java:1098)
  • vous pouvez poster l'exception de trace s'il vous plaît, la SAXParser exception voudrais aussi dire ce qui n'allait pas..
  • Ok je l'ai posté..
  • est-ce la hibernate.cfg.xml fichier ou hbm.xml fichier.. les hibernate-mapping entrée vient dans le hbm.xml fichiers, vous pouvez essayer avec ce <!DOCTYPE hibernate-mapping SYSTEM "classpath://org/hibernate/hibernate-mapping-3.0.dtd">
  • Nous n'utilisons pas un hibernate.cfg.xml fichier, comme le post original, dit-on utiliser la Configuration de l'Objet. Donc, c'est dans l'hbm.xml fichier. Pourquoi devrais-je essayer celui que vous avez proposé? La documentation Hibernate dit la manière dont je suis en train de faire, il doit travailler... de toute façon je vais l'essayer je ne vois pas pourquoi cela devrait fonctionner...
  • Ne sais pas si ça aide, mais j'ai la suite de mappage de fichier qui fonctionne parfaitement: <?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="com.example.entity.Person" table="TBPerson"> <id column="idPerson" name="id" type="long"> <generator class="identity"/> </id> <property column="Name" name="name" type="string"/> </class> </hibernate-mapping>.
  • Merci. C'est la DTD à partir de versions antérieures à la version 3.6. Hibernate doc a dit d'utiliser la hibernate.org maintenant edit: Aussi, nos anciens fichiers ont ainsi que une qui ne fonctionne pas
  • Voir si vous avez un conflit de version de xerces en vous classpath. Que la déclaration de DTD devrait fonctionner, de sorte que le problème est ailleurs.
  • Merci de poster l'ensemble de la trace de la pile.
  • Pourquoi avoir xerces sur mon classpath être un conflit? Ne Hibernate v4 ont ce fichier jar quelque part?
  • Je disais ça parce que j'ai eu d'autres pots qui avait xerces comme une dépendance qui fini par déconner tout le monde qui a également eu des xerces comme la dépendance. De toute façon, l'oublier. Si j'étais vous, je prendrais un décapage approche: prendre les pots, un par un, depuis le chemin de la classe, jusqu'à ce que ça fonctionne ou... vous n'avez pas de pots de gauche.
  • D'accord, c'est ce que je vais faire. Et btw, j'ai xerces sur le chemin de la classe. Cependant v4 de Hibernate n'a tout simplement pas xerces comme un pot donc je ne vois pas pourquoi il faudrait le visser en place... MAIS peut-être qu'ils renommé ou quelque chose. Btw je suggère u poste une réponse
  • Je me suis débarrassé de xerces.jar comme vous l'avez suggéré. J'ai mis à jour la dernière version de xerces. Cela a réglé tous mes problèmes. Si vous poste une réponse (avec votre suggestion que son bocal liés, et d'examiner plus précisément xerces) dans les prochains jours, je vais la récompense. Sinon, je vais prix Siddharth la bounty.
  • Hum, j'ai vu ça trop tard. J'aurais suggéré que vous l'avez édité votre question avec la solution prise (qui a fonctionné) et a demandé une explication de pourquoi xerces.jar était gâcher tout ça. Je ne me sentirais pas "digne" de la générosité, car bien que mon commentaire a contribué à la contourner, nous n'avons pas vraiment découvrir la cause.
  • Ce n'est pas une question de dignité vraiment. Vos commentaires contribué à bien que. Je suis également pas sûr de savoir pourquoi xerces.jar la pagaille parce que l'aide du "rapporteur" utilitaire (qui produit un rapport de conflit pot de classes), xerces ne semblent pas avoir de conflits. Donc je doute que je ne le saura jamais, mais TBH, je suis juste content qu'il soit fixe.

InformationsquelleAutor KyleM | 2013-06-14