原文地址:
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
.........
分享到:
相关推荐
Java:DocumentBuilderFactory调用XML的方法实例,需要的朋友可以参考一下
DocumentBuilderFactory domfac = DocumentBuilderFactory.newInstance(); // 从DOM工厂获得DOM解析器 DocumentBuilder dombuilder = domfac.newDocumentBuilder(); // 把要解析的XML文档转化为输入流,以便...
DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance(); // 2. 获得文档解析器对象 DocumentBuilder documentBuilder = documentBuilderFactory.newDocumentBuilder(); // 3. 获得...
xml解析,提供丰富的xml文档解析的方法
将数据库信息读取到xml中,部分代码 ... DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance(); DocumentBuilder builder=factory.newDocumentBuilder(); Document doc=builder.newDocument();
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文档.DocumentBuilderFactory DocumentBuilder Document doc;至此可以用doc来操作xml文档了
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder; try { builder = factory.newDocumentBuilder(); Document doc; try { doc = builder.parse(new ...
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); // 从工厂获得DOM解析器 DocumentBuilder db = factory.newDocumentBuilder(); // 创建文件对象 File file = new File(...
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); DocumentBuilder db = dbf.newDocumentBuilder(); Document domTree = db.parse( xmlFile ); return domTree; } /** * 获得某...
这里创建了一个XmlBeanDefinitionParser接口的实现,这个接口的具体类是DefaultXmlBeanDefinitionParser,这个接口很简单,只有registerBeanDefinitions一个方法,这个方法的作用也很明了,就是用来注册Bean的定义的...
throws TransformerException, IOException, ... DocumentBuilderFactory.newInstance().newDocumentBuilder() .newDocument()); wordToHtmlConverter.setPicturesManager( new PicturesManager() {
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilder docbuilder = factory.newDocumentBuilder(); Document parse = docbuilder .parse(new File("src/ProdQuery.xml"&#...
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
DocumentBuilderFactory factory = DocumentBuilderFactory .newInstance(); DocumentBuilder builder = factory.newDocumentBuilder(); return builder.parse(is); } finally { is.close(); }...
import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.ParserConfigurationException; import javax.xml.transform.Transformer; import javax.xml.transform.TransformerConf
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所必需的,以避免出现类装入错误,例如: org.apache.xerces.jaxp.DocumentBuilderFactoryImpl无法转换为javax.xml.parsers.DocumentBuilderFactory 特别感谢 ,他启发了我在有关帖子。