栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > .Net

dom4j 解析报错java.net.UnknownHostException:java.sun.com

.Net 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

dom4j 解析报错java.net.UnknownHostException:java.sun.com

dom4j 解析报错java.net.UnknownHostException:java.sun.com 问题现象:

在开发中使用到了dom4j去解析一个xml格式的文件,代码中使用到了SAXReader进行转换。
在本机电脑测试运行时,没有任何问题,当放在服务器时,报错:

java.net.UnknownHostException:java.sun.com
问题代码:
SAXReader reader = new SAXReader(); 
Document doc = reader.read(f);
//获取根节点 properties
Element root = doc.getRootElement();
原因: 1、根本原因:

因为SAXReader需要下载外部的dtd文件对xml验证

2、项目原因:

因为部署的服务器不能联网

解决办法:(两种解决思路,建议使用第二种)

1、去掉xml文件中的doctype或者将doctype中指定的互联网dtd文件改为引用本地dtd文件。
doctype的在xml文件中开头位置,如下:
*根据实际情况进行修改,此处未修改 *



但是这种办法会需要修改xml文件,大部分实际项目这种做法并不允许

2、对dom4j的SAXReader进行设置,不去下载外部dtd文件来对xml进行验证

SAXReader reader = new SAXReader();
//以下两行代码,是对dom4j的SAXReader进行设置,不去下载外部dtd文件来对xml进行验证
//SAXReader需要下载外部的dtd文件对xml验证,当服务器不能链接外网时,会报错
//这里将验证关闭
reader.setValidation(false);
reader.setFeature("http://apache.org/xml/features/nonvalidating/load-external-dtd", false);
Document doc = reader.read(f);
//获取根节点 properties
Element root = doc.getRootElement();

参考文章:

https://blog.csdn.net/youlianying/article/details/5908335
https://www.iteye.com/blog/pengfeng-819827

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/905915.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号