`
lengweiping1983
  • 浏览: 17124 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

DocumentBuilderFactory以及SAXParserFactory具体实现的查找步骤

    博客分类:
  • CXF
阅读更多
原文地址: http://ephon.spaces.live.com/blog/cns!796FAD06E2C0A525!589.entry

JAXP DocumentBuilderFactory 以及 SAXParserFactory 具体实现的查找步骤
1、使用"javax.xml.parsers.DocumentBuilderFactory"系统属性。 即使用Java -Djavax.xml.parsers.DocumentBuilderFactory=.. ..定义的系统属性,可以通过System.getProperty("javax.xml.parsers.DocumentBuilderFactory")获得;
2、使用"jre\lib"下面的jaxp.properties 文件中键值为 javax.xml.parsers.DocumentBuilderFactory属性获得;
3、使用运行时类路径中JAR包中的"META-INF/services/javax.xml.parsers.DocumentBuilderFactory"文件中的第一行的内容作为具体的Factor实现;
同样了,对于寻找javax.xml.parsers.SAXParserFactory的过程与上述相同,只不过,属性名称为"javax.xml.parsers.SAXParserFactory"。
对于sun的jre来说,如果上述的三个地方均找不到,那么:
对于javax.xml.parsers.DocumentBuilderFactory: sun提供默认实现:com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl 对于javax.xml.parsers.SAXParserFactory: sun提供默认实现:com.sun.org.apache.xerces.internal.jaxp.SAXParserFactoryImpl


另外,Trouble-shooting的好工具:
请设置属性 -Djaxp.debug=1,系统会把寻找javax.xml.parsers.DocumentBuilderFactory和javax.xml.parsers.SAXParserFactory 的具体过程给打印出来。就像下面:
JAXP: created new instance of class com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl using ClassLoader: sun.misc.Launcher$AppClassLoader@7259da
JAXP: find factoryId =javax.xml.parsers.DocumentBuilderFactory
JAXP: loaded from fallback value: com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl

.........

JAXP: find factoryId =javax.xml.parsers.DocumentBuilderFactory
JAXP: found jar resource=META-INF/services/javax.xml.parsers.DocumentBuilderFactory using ClassLoader: nc.bs.mw.start.BootstrapClassLoader@e5b723
JAXP: found in resource, value=org.apache.xerces.jaxp.DocumentBuilderFactoryImpl
JAXP: created new instance of class org.apache.xerces.jaxp.DocumentBuilderFactoryImpl using ClassLoader: nc.bs.mw.start.BootstrapClassLoader@e5b723
JAXP: find factoryId =javax.xml.parsers.DocumentBuilderFactory
JAXP: found jar resource=META-INF/services/javax.xml.parsers.DocumentBuilderFactory using ClassLoader: nc.bs.mw.start.BootstrapClassLoader@e5b723

.........

JAXP: find factoryId =javax.xml.parsers.DocumentBuilderFactory
JAXP: found jar resource=META-INF/services/javax.xml.parsers.DocumentBuilderFactory using ClassLoader: WebappClassLoader
delegate: false
repositories:
/WEB-INF/classes/
----------> Parent Classloader:
nc.bs.mw.start.BootstrapClassLoader@e5b723

.........
分享到:
评论
1 楼 isongoo 2009-10-17  
你好,我也碰到类似错误:
Provider com.sun.org.apache.xerces.internal.jaxp.SAXParserFactoryImpl could not be instantiated

-----------
使用Google app engine时,启动不了,因为xerces这个类包的问题,冲突或者找不到,jdk\jre\lib里的rt.jar里包含internal,而新版本里没有internal
org.apache.xerces.jaxp.SAXParserFactoryImpl

-------------------
有人说在jdk\jre\lib加文件jaxp.properties:
javax.xml.parsers.DocumentBuilderFactory=com.sun.org.apache.xerces.jaxp.DocumentBuilderFactoryImpl
javax.xml.parsers.SAXParserFactory=com.sun.org.apache.xerces.jaxp.SAXParserFactoryImpl

可是我加了之后,eclipse启动错误,
org.xml.sax.SAXException: Could not acquire XML parsing service.
也是类似的问题,

没有找到合适的解决方法。 环境:
jdk1.6.0\jre\lib\rt.jar 里是com.sun.org.apache.xerces.internal
eclipse3.5里是org.apache.xerces.jaxp,
请问有没有什么建议?

相关推荐

    Java:DocumentBuilderFactory调用XML的方法实例

    Java:DocumentBuilderFactory调用XML的方法实例,需要的朋友可以参考一下

    java解析xml

    DocumentBuilderFactory domfac = DocumentBuilderFactory.newInstance(); // 从DOM工厂获得DOM解析器 DocumentBuilder dombuilder = domfac.newDocumentBuilder(); // 把要解析的XML文档转化为输入流,以便...

    dom4j.jar.jar

    DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance(); // 2. 获得文档解析器对象 DocumentBuilder documentBuilder = documentBuilderFactory.newDocumentBuilder(); // 3. 获得...

    xml解析工具类

    xml解析,提供丰富的xml文档解析的方法

    读取数据库信息到xml

    将数据库信息读取到xml中,部分代码 ... DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance(); DocumentBuilder builder=factory.newDocumentBuilder(); Document doc=builder.newDocument();

    xml入门教程/xml入门教程

    4) XML没有定义任何标记,它提供了一种工具定义标记以及它们之间的结构关系; 5) XML是一种用于结构化文本交换的标记语言; 6) XML代表了内容的结构也代表了内容本身; 7) XML继承自SGML(标准通用标记语言)。SGML的...

    黑马程序员

    DocumentBuilderFactory buiderFactory = DocumentBuilderFactory.newInstance(); DocumentBuilder buider = buiderFactory.newDocumentBuilder(); Document document = buider.parse("src/person.xml"); ...

    java生成xml文件

    用java生成xml文档.DocumentBuilderFactory DocumentBuilder Document doc;至此可以用doc来操作xml文档了

    列车车次信息解析实例

    DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder; try { builder = factory.newDocumentBuilder(); Document doc; try { doc = builder.parse(new ...

    电影院售票系统(适合Java初学者查看).zip

    DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); // 从工厂获得DOM解析器 DocumentBuilder db = factory.newDocumentBuilder(); // 创建文件对象 File file = new File(...

    Java解析XML工具类--(java源码)

    DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); DocumentBuilder db = dbf.newDocumentBuilder(); Document domTree = db.parse( xmlFile ); return domTree; } /** * 获得某...

    spring2.5.6源码

    这里创建了一个XmlBeanDefinitionParser接口的实现,这个接口的具体类是DefaultXmlBeanDefinitionParser,这个接口很简单,只有registerBeanDefinitions一个方法,这个方法的作用也很明了,就是用来注册Bean的定义的...

    word转换html

    throws TransformerException, IOException, ... DocumentBuilderFactory.newInstance().newDocumentBuilder() .newDocument()); wordToHtmlConverter.setPicturesManager( new PicturesManager() {

    往xml中更新节点的实例代码

    DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilder docbuilder = factory.newDocumentBuilder(); Document parse = docbuilder .parse(new File("src/ProdQuery.xml"&#...

    serwersms-java-api:JAVA客户端,用于与API v2 SerwerSMS.pl进行远程通信

    SerwerSMS.pl JAVA客户端API ...import javax.xml.parsers.DocumentBuilderFactory ; import org.json.* ; import org.w3c.dom.* ; import org.xml.sax.InputSource ; import SerwerSMS.* ; public class New

    android xml文件操作

    DocumentBuilderFactory factory = DocumentBuilderFactory .newInstance(); DocumentBuilder builder = factory.newDocumentBuilder(); return builder.parse(is); } finally { is.close(); }...

    java对XML文件的解析、节点的增加、删除操作总结

    import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.ParserConfigurationException; import javax.xml.transform.Transformer; import javax.xml.transform.TransformerConf

    Android创建与解析XML(二)——详解Dom方式

    1. Dom概述 Dom方式创建XML,应用了标准xml...javax.xml.parsers.DocumentBuilderFactory javax.xml.parsers.ParserConfigurationException; javax.xml.transform javax.xml.transform.TransformerFactory javax.xml.

    AntiSamy-1.5.7-With-ColdFusion-10:我演示如何在ColdFusion 10和JavaLoader 1.2组件的帮助下使用AntiSamy 1.5.7

    ,这是AntiSamy 1.5.7所必需的,以避免出现类装入错误,例如: org.apache.xerces.jaxp.DocumentBuilderFactoryImpl无法转换为javax.xml.parsers.DocumentBuilderFactory 特别感谢 ,他启发了我在有关帖子。

Global site tag (gtag.js) - Google Analytics