0

我正在使用 JBOSS 5.1.0.GA 和休眠

当我尝试连接到数据库时,出现以下错误

10:21:03,042 INFO  [Version] Hibernate Commons Annotations 3.1.0.GA
10:21:03,049 INFO  [Configuration] configuring from resource: /hibernate.cfg.xml
10:21:03,049 INFO  [Configuration] Configuration resource: /hibernate.cfg.xml
10:21:03,077 INFO  [STDOUT] Warning: Caught exception attempting to use SAX to load a SAX XMLReader 
10:21:03,077 INFO  [STDOUT] Warning: Exception was: java.lang.ClassCastException: org.apache.xerces.parsers.SAXParser cannot be cast to org.xml.sax.XMLReader
10:21:03,077 INFO  [STDOUT] Warning: I will print the stack trace then carry on using the default SAX parser
10:21:03,077 ERROR [STDERR] java.lang.ClassCastException: org.apache.xerces.parsers.SAXParser cannot be cast to org.xml.sax.XMLReader
10:21:03,078 ERROR [STDERR]     at org.xml.sax.helpers.XMLReaderFactory.loadClass(Unknown Source)
10:21:03,078 ERROR [STDERR]     at org.xml.sax.helpers.XMLReaderFactory.createXMLReader(Unknown Source)
10:21:03,078 ERROR [STDERR]     at org.dom4j.io.SAXHelper.createXMLReader(SAXHelper.java:83)
10:21:03,078 ERROR [STDERR]     at org.dom4j.io.SAXReader.createXMLReader(SAXReader.java:894)
10:21:03,078 ERROR [STDERR]     at org.dom4j.io.SAXReader.getXMLReader(SAXReader.java:715)
10:21:03,078 ERROR [STDERR]     at org.dom4j.io.SAXReader.read(SAXReader.java:435)
10:21:03,078 ERROR [STDERR]     at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1518)

然后

10:21:03,386 INFO  [STDOUT] 10:21:03,382 ERROR [DatabaseManager] Error intialising Hibernate
org.hibernate.HibernateException: Could not parse configuration: /hibernate.cfg.xml
    at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1528)
    at org.hibernate.cfg.AnnotationConfiguration.doConfigure(AnnotationConfiguration.java:1035)
    at org.hibernate.cfg.AnnotationConfiguration.doConfigure(AnnotationConfiguration.java:64)
    at org.hibernate.cfg.Configuration.configure(Configuration.java:1462)
    at org.hibernate.cfg.AnnotationConfiguration.configure(AnnotationConfiguration.java:1017)
    at org.hibernate.cfg.AnnotationConfiguration.configure(AnnotationConfiguration.java:64)
    at org.hibernate.cfg.Configuration.configure(Configuration.java:1448)


Caused by: org.dom4j.DocumentException: SAX2 driver class org.apache.xerces.parsers.SAXParser does not implement XMLReader Nested exception: SAX2 driver class org.apache.xerces.parsers.SAXParser does not implement XMLReader
    at org.dom4j.io.SAXReader.read(SAXReader.java:484)
    at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1518)

我有以下依赖项:-

休眠注释 3.4.0.GA 休眠公共注释 3.1.0.GA 休眠核心 3.3.0.SP1

我怀疑我在 jboss lib 中的一个 jar 和我的依赖项中的一个 jar 之间存在冲突。谁能建议它可能是什么?

4

1 回答 1

0

尝试在 JBoss 5.0.1 中运行 Hibernate 4.0.0.CR6 时,我遇到了同样的错误。

Hibernate 解析配置文件所需的解析器似乎是由 jboss 认可的库(我相信/lib/endorsed/xercesImpl.jar)提供的,并且 hibernate 的 xml-apis 依赖性以某种方式干扰了它们。

未在生成的存档(在我的情况下为 .war)中打包 xml-apis .jar 原来可以解决问题。为此,我在生成存档的项目的 .pom 中覆盖了依赖项的范围(覆盖其他任何地方都不会这样做,因为提供的范围不是可传递的):

<dependency>
  <groupId>xml-apis</groupId>
  <artifactId>xml-apis</artifactId>
  <version>1.0.b2</version>
  <scope>provided</scope>
</dependency>
于 2011-12-09T08:40:52.983 回答