org.dom4j.DocumentException: unknown protocol: d
原因:
第一个原因:
1、安装Tomcat的时候,安装路径里不要有空格,否则用到Dom4j解析时就容易出错:org.dom4j.DocumentException: unknown protocol: f (装在 f 盘就会报 f 盘的错误)
解决办法:
1、
如果出现这个错误,又不想重装Tomcat,则可以将要被解析的(xml)文档转为File类型,就能正常解析了,如:
String url=request.getRealPath("/")+"WEB-INF/config/quick.link.cfg.xml";
File file = new File(url); // 增加这行代码
第二个原因:
今天帮同事看这个问题:
错误:“unknown protocol: d”
致命错误:“无法编译样式表”
javax.xml.transform.TransformerConfigurationException: 无法编译样式表
at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerFactoryImpl.newTemplates(TransformerFactoryImpl.java:825)
感觉很诡异,在网上查了很多资料,发现都不管用,最终
所谓"d"只是路径有问题,经过分析,这个xslt调用的路径中含有中文,这是DOM4J本身的一个BUG。去掉中文即可正常解析。