关于JDOM的简单问题?

问题描述

packagecom.test;importjava.io.FileOutputStream;importjava.io.OutputStream;importjava.net.Socket;importorg.jdom.Document;importorg.jdom.Element;importorg.jdom.output.XMLOutputter;publicclassXMLClient{publicstaticvoidmain(String[]args)throwsException{Socketsocket=newSocket("localhost",5000);OutputStreamos=socket.getOutputStream();Documentdocument=newDocument();Elementroot=newElement("message");document.addContent(root);Elemente=newElement("type");e.setText("Login");root.addContent(e);e=newElement("userName");e.setText("Jack");root.addContent(e);XMLOutputteroutput=newXMLOutputter();output.output(document,os);}}

packagecom.test;importjava.io.InputStream;importjava.net.ServerSocket;importjava.net.Socket;importorg.jdom.Document;importorg.jdom.Element;importorg.jdom.input.SAXBuilder;publicclassXMLServer{publicstaticvoidmain(String[]args)throwsException{ServerSocketss=newServerSocket(5000);Socketsocket=ss.accept();InputStreamis=socket.getInputStream();SAXBuilderbuilder=newSAXBuilder();Documentdocument=builder.build(is);Elementroot=document.getRootElement();System.out.println(root.getName());}}

运行后报错。。Exceptioninthread"main"java.net.SocketException:Connectionresetatjava.net.SocketInputStream.read(SocketInputStream.java:168)atjava.net.SocketInputStream.read(SocketInputStream.java:182)atcom.sun.org.apache.xerces.internal.impl.XMLEntityManager$RewindableInputStream.read(XMLEntityManager.java:2932)atcom.sun.org.apache.xerces.internal.impl.XMLEntityManager.setupCurrentEntity(XMLEntityManager.java:704)atcom.sun.org.apache.xerces.internal.impl.XMLVersionDetector.determineDocVersion(XMLVersionDetector.java:186)atcom.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:772)atcom.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:737)atcom.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:119)atcom.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1205)atcom.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:522)atorg.jdom.input.SAXBuilder.build(SAXBuilder.java:518)atorg.jdom.input.SAXBuilder.build(SAXBuilder.java:865)atcom.test.XMLServer.main(XMLServer.java:20)请高手指教啊!!!!

解决方案

解决方案二:
怎么没人解答啊???知道的说下啊
解决方案三:
XMLClient:os.close();socket.close();XMLServer:socket.close();ss.close();main函数最后面加入上面的语句就可以了
解决方案四:
你的这种写法有点像ActionScript里面对XML的支持,你可以参考一下那边的。。本人不赞成用jdom...它的build方法很容易报错,当它执行第二次时一般会报错
解决方案五:
引用2楼sleepson的回复:

XMLClient:os.close();socket.close();XMLServer:socket.close();ss.close();main函数最后面加入上面的语句就可以了

恩。。是这个问题啊。。如果能解释下为什么就更好了

时间: 2024-09-15 00:53:50

关于JDOM的简单问题?的相关文章

JDOM使用详解及实例

dom|详解 一.JDOM 简介 JDOM是一个开源项目,它基于树型结构,利用纯JAVA的技术对XML文档实现解析.生成.序列化以及多种操作. JDOM 直接为JAVA编程服务.它利用更为强有力的JAVA语言的诸多特性(方法重载.集合概念以及映射),把SAX和DOM的功能有效地结合起来. 在使用设计上尽可能地隐藏原来使用XML过程中的复杂性.利用JDOM处理XML文档将是一件轻松.简单的事. JDOM 在2000年的春天被Brett McLaughlin和Jason Hunter开发出来,以弥补

JDOM 介绍及使用指南

dom 转自:http://blog.csdn.net/hk2000c/archive/2003/09/26/15239.aspx JDOM 介绍及使用指南 一.JDOM 简介JDOM是一个开源项目,它基于树型结构,利用纯JAVA的技术对XML文档实现解析.生成.序列化以及多种操作.JDOM 直接为JAVA编程服务.它利用更为强有力的JAVA语言的诸多特性(方法重载.集合概念以及映射),把SAX和DOM的功能有效地结合起来.在使用设计上尽可能地隐藏原来使用XML过程中的复杂性.利用JDOM处理X

用JDOM包实现生成XML文件的简单示例

dom|xml|生成xml|示例 import java.io.*;import org.jdom.*;import org.jdom.input.*;import org.jdom.input.*;import org.jdom.output.*;public class test1 {    public void BuildXMLDoc() throws IOException,JDOMException {        Element eeeRoot, eee1, eee2;     

JDOM操作XML文件(法老修正版)

dom|xml 原文:JDOM操作XML文件地址:http://www.jspcn.net/htmlnews/200120272.html---------------------------------------------------------------------------    这篇文章讲的不错~把JDOM的基本操作实例化了,不过由于当时的作者用的JDOM版本还比较陈旧,所以部分代码会编译出错!支持中文也不好!所以,法老在原作者的基础上对程序做了修改!休正了编译出错以及中文乱码的

教您快速上手使用JDOM处理XML文档的技巧

dom|xml|技巧 JDOM的介绍以及与JAXB的比较 Java + XML = JDOM ! 这就是JDOM设计者的目标.如果你曾经使用过烦人的SAX或是DOM来处理XML,你就会知道为什么要有JDOM或者是JAXB.在JavaOne会议上JDOM的主要创始人Jason Hunter有一篇精彩的演讲介绍了JDOM技术,题目就是JDOM Makes XML Easy. 在那篇文档里,JDOM被拿来与DOM比较,而我更愿意拿它同JAXB比较.因为JAXB和JDOM都是为了在Java中提供比DOM

JAVA与XML 之JDOM

dom|xml 在 JDOM 中,XML 元素就是 Element 的实例,XML 属性就是 Attribute 的实例,XML 文档本身就是 Document 的实例.    因为 JDOM 对象就是像 Document.Element 和 Attribute 这些类的直接实例,因此创建一个新 JDOM 对象就如在 Java 语言中使用 new 操作符一样容易.JDOM 的使用是直截了当的.    JDOM 使用标准的 Java 编码模式.只要有可能,它使用 Java new 操作符而不故弄玄

在JSP开发中使用jdom解析临时存放数据的XML文件

dom|js|xml|数据     在我工作过程中,遇到了对临时存储产品信息的XML文件进行操作的问题.其中就有对XML文件的解析操作,考虑到用DOM或SAX比较麻烦,于是我选择了用jdom进行解析.因为我的XML文件结构比较简单,仅有两层,而且没有复杂的属性,所以没有用到里面太多的方法,只希望能够抛砖引玉,给初学者一点帮助.     下面我就把大概的实现过程说一说.     一.实现解析xml文件的JavaBean(XMLBean):     我把对存放产品信息的xml文档的全部操作都写在了X

JDOM真的比DOM4j要慢么?

dom  有一部分xml解析器使用者认为 JDOM 很慢,至少比起Dom4j来说效率不快.其实JDOM和DOM4J一样,同属优秀的开源XML解析器, 完全不必这样担心. 现在就实际拿一些实际使用的例子,作为简单的测试用例,对JDOM以及DOM4J最基本的文档解析功能来说明这个问题. JDOM测试用例如下:      public Document getDoc(String filename) throws IOException, JDOMException {        SAXBuild

数据库访问简单实现---edainfo-model(三)——简单例子

model|访问|数据|数据库 下面就正式来讲一下开发步骤:首先,在Tomcat5.X下建一个jdbc/edainfo的数据源,数据库可以是oracle.sql server.mysql.表的结构如下:CREATE TABLE example (id varchar(13) NOT NULL ,name varchar(50) NULL ,address varchar(50) NULL ) ON [PRIMARY]其中,id为主键.datasource.xml内容如下:<?xml versio