私たちのプロジェクトは、Hibernate のプログラムを使用Configuration
して、SessionFactory などをセットアップします。Hibernate のバージョン 3 からバージョン 4 に移行しました。「要素タイプ "hibernate-mapping" を宣言する必要があります」というエラーが表示されます。それはSaxParseExceptionです。それは素晴らしいことですが、WEB-INF/lib ディレクトリを確認すると、Hibernate のバージョン 4 コア .jar ファイルがそこにあるので、クラスパス上にあります。
最初は、Hibernate チームが
<!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">
しかし、それはエラーを修正しません。何が起こっている?Hibernate の XML 構成ファイルを使用している別のプロジェクトで、同じ移行を行ったところ、うまくいきました。私の環境ではクラスパスを使用する必要があることに注意してください.DTDはインターネットなどからダウンロードできません。とにかくそうであってはなりません。
編集:要求された例外は次のとおりです。
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)