如何在Java中使XPathFactory newInstance失败?

时间:2015-12-19 14:52:40

标签: java classloader system-properties

XPathFactory.newInstance(String uri)的文档是here

我试图让这个失败:

println(System.getProperty("DEFAULT_PROPERTY_NAME"));
System.setProperty("DEFAULT_PROPERTY_NAME", "dummy");
println(System.getProperty("DEFAULT_PROPERTY_NAME"));
XPathFactory xPathFactory = XPathFactory.newInstance();
println(xPathFactory.getClass());

我得到的输出是:

null
dummy
class org.apache.xpath.jaxp.XPathFactoryImpl

我期待ClassLoader因子弹点而失败:

  

如果系统属性DEFAULT_PROPERTY_NAME +“:uri”存在,   其中uri是此方法的参数,然后将其值读取为a   班级名称。该方法将尝试创建此类的新实例   通过使用类加载器,如果成功则返回它   创建

但事实并非如此,我显然遗漏了一些东西。

我做错了什么?

2 个答案:

答案 0 :(得分:1)

  

我期待ClassLoader因子弹点而失败:

此要点指的是方法:

public static final XPathFactory newInstance(String uri)

但你在呼唤:

public static final XPathFactory newInstance()

指出:

  

此方法在功能上等同于:

     

的newInstance(DEFAULT_OBJECT_MODEL_URI)

     

由于W3C DOM的实现始终可用,因此该方法永远不会失败。

答案 1 :(得分:0)

请更改

System.setProperty("DEFAULT_PROPERTY_NAME", "dummy");

System.setProperty(XPathFactory.DEFAULT_OBJECT_MODEL_URI, "dummy");