`
lengweiping1983
  • 浏览: 17454 次
  • 性别: 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的方法实例

    下面我们将详细探讨如何使用`DocumentBuilderFactory`来解析XML文件,并通过实例讲解其核心步骤。 1. **获取`DocumentBuilderFactory`实例** `DocumentBuilderFactory.newInstance()`是获取DOM解析器工厂的标准...

    xerces-2.9.0.jar

    Xerces 实现了 W3C 的 XML Schema 1.0 和 1.1 规范,以及 XML 1.0 和 1.1 的解析标准,同时提供了对 DOM、SAX 和 JAXP 接口的支持。 描述 "Provider org.apache.xerces.jaxp.DocumentBuilderFactoryImpl not found...

    java读取xml文件

    首先,Java标准库JDK提供了一个内置的API——javax.xml.parsers包,它包含了处理XML的基本工具,如DocumentBuilderFactory和SAXParserFactory。以下是使用DOM解析器读取XML文件的基本步骤: 1. 引入必要的Java库: ...

    XML解析的三种方式实现源代码

    以下是使用Java实现DOM解析的基本步骤: - 导入必要的库:`javax.xml.parsers.DocumentBuilderFactory` 和 `org.w3c.dom.*` - 创建DOM解析器工厂:`DocumentBuilderFactory dbFactory = DocumentBuilderFactory.new...

    JAXP 专述――Sun 的 Java API for XML 语法分析

    开发者可以通过JAXP提供的工厂类(如DocumentBuilderFactory和SAXParserFactory)来创建解析器实例。这些工厂类遵循统一的接口,使得在不同实现之间切换变得无缝。例如,如果一个应用程序最初使用Sun的内置解析器,...

    java解析xml

    在 `try` 块中,首先通过 `DocumentBuilderFactory.newInstance()` 创建了一个 `DocumentBuilderFactory` 实例,这个工厂类用于生成 `DocumentBuilder`,它能够解析 XML 文档。 接着,`dombuilder.parse(is)` 使用 ...

    JAVA xmltree 实现 树的实现

    下面以DOM为例,介绍具体的实现步骤: 1. 引入所需的库: ```java import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.DocumentBuilder; import org.w3c.dom.Document; import org.w3c....

    oracle查找显示多个学生

    为了更具体地了解如何实现这一功能,我们需要考虑以下几个方面: 1. **表结构**:首先需要明确存储学生信息的表的结构,包括字段名称和数据类型。 2. **查询条件**:其次确定查询的具体条件,例如是否需要根据特定...

    Android 解析XML的三种方式Demo完整版

    在"XMLParserDemo"项目中,你可以找到上述三种解析方式的具体实现,包括如何读取XML文件,处理标签和属性,以及如何在Android应用中展示解析结果。通过这个项目,初学者可以更好地理解Android中XML解析的各种方法...

    jdk_api_1.6.0中文版

    8. **XML处理**:Java API for XML Processing (JAXP) 提供了解析XML文档、转换XML和DOM操作等功能,如DocumentBuilderFactory、SAXParserFactory和TransformerFactory等。 JDK API文档的中文版极大地方便了中国...

    Java代码示例,演示在Apache Lenya中创建和管理文章(附详细步骤,含代码共16900字).txt

    其中 `SiteManager` 和 `PublicationFactory` 分别用于获取站点和发布,具体实现如下: ```java SiteManager siteManager = SiteManagerFactory.newInstance().getSiteManager(session); Site site = siteManager....

    JDK6.0API(中文)

    JDK6.0提供了处理XML的API,如`javax.xml.parsers`包中的DocumentBuilderFactory和SAXParserFactory,用于解析XML文档。`javax.xml.transform`包则提供了转换XML数据的能力,如XSLT转换。 七、数据库连接 JDBC...

    sax,dom解析xml和生产xml文件

    XML(eXtensible Markup Language)是一种用于标记数据的语言,广泛应用于数据交换、配置文件以及文档存储等领域。本文将深入探讨两种主要的XML解析方法——SAX(Simple API for XML)和DOM(Document Object Model...

    新J2EE Tutorial第四章

    这种灵活性通过使用“插件层”技术实现,该技术可以利用SAX或DOM API的具体实现,也可以插入XSL处理器来控制XML数据的表现形式。 #### 知识点二:JAXP的主要API - **包结构**:JAXP的主要API定义在`javax.xml....

    android 解析XML文件 生成XML文件

    由于篇幅限制,这里仅提供每个解析方法的简要示例,具体实现可参考XMLdemo项目中的代码: - SAX解析: ```java class MyHandler extends DefaultHandler { @Override public void startElement(String uri, ...

    java使用DocumentBuilderFactory和DocumentBuilder来读取和解析XML文件java-xml

    例子中首先创建了一个DocumentBuilderFactory实例,然后通过这个实例获取了一个DocumentBuilder。接着,我们使用parse方法解析了一个名为example.xml的XML文件。之后,我们通过获取根元素并遍历其子元素来读取XML...

    java实现Xml文件读写

    导入到Eclipse后,你可以查看源代码,了解具体的实现细节,并进行测试以熟悉XML文件的操作流程。这将帮助你更好地理解和掌握Java处理XML文件的能力。同时,也可以通过调试和修改代码,加深对XML解析和生成过程的理解...

    java实现的浏览器

    通过查看这些源代码,我们可以深入学习Java如何构建网络应用程序,以及如何实现浏览器的一些基本功能。不过,由于没有具体的代码内容,我们无法提供更详细的分析。如果你能够提供代码示例或更详细的信息,我们可以...

    android 三种解析方式实例

    本实例将详细介绍Android中三种常见的XML解析方式:DOM解析、SAX解析以及Pull解析。这三种方法各有优缺点,适用于不同的需求场景。 1. DOM解析(Document Object Model) DOM解析器将整个XML文档加载到内存中,形成...

    Android 解析xml文件

    具体的实现可能涉及以下步骤: 1. 使用`XmlPullParser`或`XmlResourceParser`(如果XML是资源文件)初始化解析器。 2. 在循环中处理解析事件,读取配置项的键值对。 3. 可能会将解析结果存储在`HashMap`或其他数据...

Global site tag (gtag.js) - Google Analytics