断开网络dom4j无法解析有网络dtd的xml文件的解决办法
来源:互联网 发布:塔吊考试模拟考试软件 编辑:程序博客网 时间:2024/05/01 05:56
struts2的配置文件的stru.xml的dtd定义是如下这样
1.<!DOCTYPE struts PUBLIC "-
2.//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
3."http://struts.apache.org/dtds/struts-2.0.dtd" > 使用dom4j解析含有这样dtd的xml文件时,它会从网络找到这个文件对xml文件进行校验。但是如果电脑断开网络的话就会出现错误说找不到dtd文件并解析失败。
解决的办法一就是解析的时候把上边那句从xml文件中删除或改成本地dtd(struts2的分发包里有这个dtd文件)。删除不太好,之后还得加上。改成本地文件可以,就是麻烦了点,还要是有多个配置文件就更麻烦了。下边就是最简单的解决办法,在dom4j的SAXReader读取xml文件时加上如下一句话
1. public static Document getDoc(String file) throws Exception {
2. SAXReader saxReader = new SAXReader();
3. //加上这句4. saxReader.setEntityResolver(new MyEntityResolver());
5. return saxReader.read(new File(file));
6. }
MyEntityResolver这个是自定义的类
1.import java.io.*;
2.import org.xml.sax.InputSource;
3.import org.xml.sax.EntityResolver;
4.5.public class MyEntityResolver implements EntityResolver {
6.7. public InputSource resolveEntity(String publicId, String systemId) {
8. return new InputSource(new StringBufferInputStream(""));
9. }
10.}
这样就行了,而且由于不用去网络上获取dtd,节省了5~6秒的时间
- 断开网络dom4j无法解析有网络dtd的xml文件的解决办法
- dom4j 读取网络的xml
- VMWare虚拟机网络连接断开的解决办法
- 有道词典“网络已断开”的解决办法
- IE无法解析XML文件的解决办法
- xml文件的dom4j解析
- Dom4J --- 使用dom4j解析XML时候忽略DTD文件
- 解析包含dtd引用的xml文件。
- 解析本地/网络上的xml文件
- Qt网络编程遇到无法解析的外部命令解决办法
- 无法连接网络的解决办法
- dom4j 解析xml文件 的操作
- 用dom4j的方式解析xml文件
- DOM4J解析String类型的xml文件
- 对xml文件的解析dom4j
- xshell 网络断开后 tab页自动关闭 的解决办法
- dom4j中使用xpath解析带命名空间的xml文件,取不到节点的解决办法
- 网络数据的XML解析
- T-SQL取n到m行数据
- 探本溯源——什么是科学研究?什么是一流的科学研究?
- Poi Cell类型与数值对照
- T-SQL分割字符串--转自CSDN的树哥(Josy)
- PHP 遍历数组的方法汇总
- 断开网络dom4j无法解析有网络dtd的xml文件的解决办法
- 管中窥豹——科学、技术、工程之差异
- CRM系统开发经验谈
- 管中窥豹——应试教育与一流科学人才究竟有多远的差距
- SQL2005的安装问题汇总
- javascript转换日期字符串为Date对象
- 在Windows Azure平台上部署服务
- 在Linux中执行.sh脚本,异常/bin/sh^M: 解决办法
- oracle查看权限常用语句