CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Java >  Web Services / XML

一个简单的读XML文件的程序报错。请帮忙看看

楼主leisureftso()2005-09-12 10:34:45 在 Java / Web Services / XML 提问

我用的系统是SCO   UNIX   (SCO   OpenServer   5.0.5),JDK的版本是J2SE   1.3的。因为1.3的版本不支持JAXP的XML处理,所有我有网上下了一个JAXP的包,安装完后写了个程序试一下:  
  import   javax.xml.parsers.*;  
  import   org.w3c.dom.*;  
  import   org.xml.sax.*;  
  import   java.io.*;  
   
  public   class   WebXMLReader  
  {  
  private   DocumentBuilderFactory   factory;  
  private   DocumentBuilder   builder;  
  private   Document   xmlDoc;  
   
  public   void   getXml()  
  {  
  try  
  {  
  factory   =   DocumentBuilderFactory.newInstance();  
  builder   =   factory.newDocumentBuilder();  
  xmlDoc   =   builder.parse(new   FileInputStream(new   File("/usr/test/WEB-INF/web.xml")));  
  Element   root   =   xmlDoc.getDocumentElement();  
  System.out.println(root.getTagName());  
  }catch(Exception   e)  
  {  
  e.printStackTrace();  
  }  
  }  
   
  public   static   void   main(String   args[])  
  {  
  WebXMLReader   xml   =   new   WebXMLReader();  
  xml.getXml();  
  }  
  }  
   
  程序编译通过,但运行就会报错,信息如下:  
  java.net.UnknownHostException:   java.sun.com  
                  at   java.net.InetAddress.getAllByName0(InetAddress.java:571)  
                  at   java.net.InetAddress.getAllByName0(InetAddress.java:540)  
                  at   java.net.InetAddress.getByName(InetAddress.java,   Compiled   Code)  
                  at   java.net.Socket.<init>(Socket.java:100)  
                  at   sun.net.NetworkClient.doConnect(NetworkClient.java:50)  
                  at   sun.net.www.http.HttpClient.openServer(HttpClient.java:331)  
                  at   sun.net.www.http.HttpClient.openServer(HttpClient.java,   Compiled   Code  
  )  
                  at   sun.net.www.http.HttpClient.<init>(HttpClient.java:267)  
                  at   sun.net.www.http.HttpClient.<init>(HttpClient.java:277)  
                  at   sun.net.www.http.HttpClient.New(HttpClient.java:289)  
                  at   sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection  
  .java:383)  
                  at   sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLCon  
  nection.java,   Compiled   Code)  
                  at   com.sun.org.apache.xerces.internal.impl.XMLEntityManager.setupCurrent  
  Entity(Unknown   Source)  
                  at   com.sun.org.apache.xerces.internal.impl.XMLEntityManager.startEntity(  
  Unknown   Source)  
                  at   com.sun.org.apache.xerces.internal.impl.XMLEntityManager.startDTDEnti  
  ty(Unknown   Source)  
    at   com.sun.org.apache.xerces.internal.impl.XMLDTDScannerImpl.setInputSou  
  rce(Unknown   Source)  
                  at   com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$DTDDis  
  patcher.dispatch(Unknown   Source)  
                  at   com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImp  
  l.scanDocument(Unknown   Source)  
                  at   com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(U  
  nknown   Source)  
                  at   com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(U  
  nknown   Source)  
                  at   com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(Unknown   So  
  urce)  
                  at   com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(Unknown   So  
  urce)  
                  at   com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(Unk  
  nown   Source)  
                  at   javax.xml.parsers.DocumentBuilder.parse(DocumentBuilder.java:102)  
                  at   WebXMLReader.getXml(WebXMLReader.java:18)  
                  at   WebXMLReader.main(WebXMLReader.java:30)  
  请问是什么原因 问题点数:50、回复次数:4Top

1 楼humanity(城市边缘的狼)回复于 2005-09-12 23:30:51 得分 35

好像尝试   解析     DTD   实体时无法连接到指定   xxx.dtd   。  
   
  如果是一个标准的   DTD   前缀,一般   .jar   里面都会有相应的   dtd   文件。  
  如果没有找到对应的文件那么就会自动到   DTD   声明的   url   去下载     DTD   来验证   。  
   
  <!DOCTYPE   web-app  
  PUBLIC   "-//Sun   Microsystems,   Inc.//DTD   Web   Application   2.2//EN"  
  "http://java.sun.com/j2ee/dtds/web-app_2_2.dtd"  
  >  
   
  当   这个   web-app   出现时,   解析器会找    
  "-//Sun   Microsystems,   Inc.//DTD   Web   Application   2.2//EN"   ,   发现这个   没有注册过,   于是找到   "http://java.sun.com/j2ee/dtds/web-app_2_2.dtd"   ,准备下载一个来完成验证,   这个   .dtd   文件中有对   web-app   的定义。   通常一般的配置文件读取类都会准备一个   .dtd   或者   .xsd   放在   .jar   中,并且默认看到   "-//Sun   Microsystems,   Inc.//DTD   Web   Application   2.2//EN"   时就直接到   .jar   中找,   如果这些写的有些不同,比如大小写不同,空格不一样多等   ,   就会出现找不到,于是尝试到互联网上找,当然你如果这样改也行:  
   
  <!DOCTYPE   web-app  
  PUBLIC   "-//Sun   Microsystems,   Inc.//DTD   Web   Application   2.2//EN"  
  "file:/D:/JavaEnv/dtds/web-app_2_2.dtd"  
  >Top

2 楼leisureftso()回复于 2005-09-13 14:59:06 得分 0

<!DOCTYPE   web-app  
  PUBLIC   "-//Sun   Microsystems,   Inc.//DTD   Web   Application   2.2//EN"  
  "http://java.sun.com/j2ee/dtds/web-app_2_2.dtd"  
  >  
   
  如果我把web.xml中的这一行删掉会怎么样Top

3 楼java_augur(听着音乐 ☆☆☆☆☆☆)回复于 2005-09-14 06:42:18 得分 10

没事Top

4 楼panpass(发了几个招聘帖子,信誉分就没了:()回复于 2005-11-18 22:00:06 得分 5

heheTop

相关问题

  • 请问下面的源程序文件为什么会报错?
  • 在调用外部程序时报错(找不到文件)
  • 用了MyAppName.exe.manifest文件程序退出时就异常报错?
  • 我在一个程序中读取XML文件,再显示到TREEVIEW控件中,可一运行老是报错:意外的XML声明,行1位置5
  • 程序中报错时如何打印出当前源文件名和行号?
  • 郁闷! 我用php写xml文件,怎么老是报错?
  • 编译java文件报错
  • 文件上传报错
  • 启动程序时报错
  • 我用schema检查xml文件,老是报错“error parsing '2002/11/11' as date datetype”, why?

关键词

  • .net
  • sun
  • 文件
  • apache
  • source
  • xml
  • httpclient
  • xerces
  • webxmlreader
  • xmlentitymanager

得分解答快速导航

  • 帖主:leisureftso
  • humanity
  • java_augur
  • panpass

相关链接

  • CSDN Java频道
  • Java类图书
  • Java类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo