org.xml.sax.SAXException: Can't create default XMLReader

来源:互联网 发布:程序员包装简历公司 编辑:程序博客网 时间:2024/05/16 00:25

最近在做一个OSGI的扩展插件,在集成Hibernate的时候,运行在equinox中没问题,但是运行在felix 2.0.1中的时候,出现了如下错误:

org.xml.sax.SAXException: Can't create default XMLReader; is system property org.xml.sax.driver set?at org.xml.sax.helpers.XMLReaderFactory.createXMLReader(Unknown Source)at org.dom4j.io.SAXHelper.createXMLReader(SAXHelper.java:83)at org.dom4j.io.SAXReader.createXMLReader(SAXReader.java:894)at org.dom4j.io.SAXReader.getXMLReader(SAXReader.java:715)at org.dom4j.io.SAXReader.read(SAXReader.java:435)at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1366)at org.hibernate.cfg.Configuration.configure(Configuration.java:1325)at com.bing.hibernate.service.impl.SessionComponent.initSessionFactory(SessionComponent.java:166)at com.bing.hibernate.service.impl.SessionComponent.registryChanged(SessionComponent.java:156)at com.bing.register.impl.RegisterImpl.notifyListeners(RegisterImpl.java:67)at com.bing.register.impl.RegisterImpl.fireAddExtension(RegisterImpl.java:57)at com.bing.register.impl.ExtensionPointImpl.addExtention(ExtensionPointImpl.java:90)at com.bing.register.impl.RegisterImpl.findExtenpoint(RegisterImpl.java:168)at com.bing.register.impl.RegisterImpl.registerExtensions(RegisterImpl.java:114)at com.bing.privacy.util.XMLParser.process(XMLParser.java:80)at com.bing.privacy.util.XMLParser.getXMLMapformat(XMLParser.java:42)at com.bing.register.impl.RegisterImpl.addExtensionStuff(RegisterImpl.java:148)at com.bing.listener.GlobalListener.bundleChanged(GlobalListener.java:30)at org.apache.felix.framework.util.EventDispatcher.invokeBundleListenerCallback(EventDispatcher.java:800)at org.apache.felix.framework.util.EventDispatcher.fireEventImmediately(EventDispatcher.java:728)at org.apache.felix.framework.util.EventDispatcher.run(EventDispatcher.java:956)at org.apache.felix.framework.util.EventDispatcher.access$4(EventDispatcher.java:914)at org.apache.felix.framework.util.EventDispatcher$1.run(EventDispatcher.java:106)at java.lang.Thread.run(Unknown Source)Warning: Caught exception attempting to use SAX to load a SAX XMLReader Warning: Exception was: org.xml.sax.SAXException: Can't create default XMLReader; is system property org.xml.sax.driver set?Warning: I will print the stack trace then carry on using the default SAX parser【Session管理器】(2012-05-15 14:52:52):初始化Hibernate SessionFactory时出现错误org.hibernate.HibernateException: Could not parse configuration: bundle://10.0:1/hibernate.cfg.xmlat org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1376)at org.hibernate.cfg.Configuration.configure(Configuration.java:1325)at com.bing.hibernate.service.impl.SessionComponent.initSessionFactory(SessionComponent.java:166)at com.bing.hibernate.service.impl.SessionComponent.registryChanged(SessionComponent.java:156)at com.bing.register.impl.RegisterImpl.notifyListeners(RegisterImpl.java:67)at com.bing.register.impl.RegisterImpl.fireAddExtension(RegisterImpl.java:57)at com.bing.register.impl.ExtensionPointImpl.addExtention(ExtensionPointImpl.java:90)at com.bing.register.impl.RegisterImpl.findExtenpoint(RegisterImpl.java:168)at com.bing.register.impl.RegisterImpl.registerExtensions(RegisterImpl.java:114)at com.bing.privacy.util.XMLParser.process(XMLParser.java:80)at com.bing.privacy.util.XMLParser.getXMLMapformat(XMLParser.java:42)at com.bing.register.impl.RegisterImpl.addExtensionStuff(RegisterImpl.java:148)at com.bing.listener.GlobalListener.bundleChanged(GlobalListener.java:30)at org.apache.felix.framework.util.EventDispatcher.invokeBundleListenerCallback(EventDispatcher.java:800)at org.apache.felix.framework.util.EventDispatcher.fireEventImmediately(EventDispatcher.java:728)at org.apache.felix.framework.util.EventDispatcher.run(EventDispatcher.java:956)at org.apache.felix.framework.util.EventDispatcher.access$4(EventDispatcher.java:914)at org.apache.felix.framework.util.EventDispatcher$1.run(EventDispatcher.java:106)at java.lang.Thread.run(Unknown Source)Caused by: org.dom4j.DocumentException: Can't create default XMLReader; is system property org.xml.sax.driver set? Nested exception: Can't create default XMLReader; is system property org.xml.sax.driver set?at org.dom4j.io.SAXReader.read(SAXReader.java:484)at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1366)... 18 morejava.lang.RuntimeException: 初始化Hibernate SessionFactory错误:org.hibernate.HibernateException: Could not parse configuration: bundle://10.0:1/hibernate.cfg.xmlat com.bing.hibernate.service.impl.SessionComponent.initSessionFactory(SessionComponent.java:188)at com.bing.hibernate.service.impl.SessionComponent.registryChanged(SessionComponent.java:156)at com.bing.register.impl.RegisterImpl.notifyListeners(RegisterImpl.java:67)at com.bing.register.impl.RegisterImpl.fireAddExtension(RegisterImpl.java:57)at com.bing.register.impl.ExtensionPointImpl.addExtention(ExtensionPointImpl.java:90)at com.bing.register.impl.RegisterImpl.findExtenpoint(RegisterImpl.java:168)at com.bing.register.impl.RegisterImpl.registerExtensions(RegisterImpl.java:114)at com.bing.privacy.util.XMLParser.process(XMLParser.java:80)at com.bing.privacy.util.XMLParser.getXMLMapformat(XMLParser.java:42)at com.bing.register.impl.RegisterImpl.addExtensionStuff(RegisterImpl.java:148)at com.bing.listener.GlobalListener.bundleChanged(GlobalListener.java:30)at org.apache.felix.framework.util.EventDispatcher.invokeBundleListenerCallback(EventDispatcher.java:800)at org.apache.felix.framework.util.EventDispatcher.fireEventImmediately(EventDispatcher.java:728)at org.apache.felix.framework.util.EventDispatcher.run(EventDispatcher.java:956)at org.apache.felix.framework.util.EventDispatcher.access$4(EventDispatcher.java:914)at org.apache.felix.framework.util.EventDispatcher$1.run(EventDispatcher.java:106)at java.lang.Thread.run(Unknown Source)

翻看了所有的文档,寻找解决方案。最后找到了原因如下:


java 系统之中使用的是JDom,Xerces解析器解析XML。在1.4之前,属于java的扩展部分,而在1.5之后,已经加入到了JDK之中了。我的系统之中的java版本是1.6,所以,包含了类路径之中加入的XercesImpl.jar  XML-api.jar,所以,在项目类路径之中加入那两个包以后,会造成冲突,就出现了上述的错误。将其从项目类路径之中删除后,工作正常。


原创粉丝点击