通过Java编程处理XML服务定义 - 编程入门网
通过Java编程处理XML服务定义(2)时间:2010-05-13 IBM Stephen Morris您可以通过网络将 清单3 中的文件传输给等待状态中的客户机 — 使用Java技术即可创建。清单4展示了一个简单的例子。 清单4. 跨越网络传输文件
清单4 中的代码创建了一个长度缓冲区 BUFFER_SIZE。 BUFFER_SIZE 常量的值可以是 1024 或更高。通过调用inputFile.read() 方法将输入文件(xmldata.xml)的内容读取到缓冲区中。进行缓冲之后,output.write() 方法将文件数据写入到 OutputStream对象的套接字中。最后一步将数据通过网络发送到等待中的客户机中。这些功能居然只需要这么少的代码! 接下来,您需要使客户机处理传入的XML数据。 接收数据的Java客户机获得 XML内容(并不是 XML文件) 客户机如何接收 XML数据?同样,对于Java技术来说这只是小事一桩。数据接收通过一个套接字对象完成。清单5展示的代码将接收传入的数据并将数据推入到 ArrayList类的对象中。 客户机现在必须解决两个与所接收数据项的数量有关的问题。由于这是一个松散耦合的场景,您必须假定客户机并不清楚服务配置文件(即 清单1 中的代码)中包含了多少 XML数据项。因此,您必须确定一些方法来接收和处理精确的数据项数量。第二个问题比较容易解决,就是如何保存处理过的数据。您将看到,清单5 同时解决了这两个问题。 清单5. 提取嵌入的XML数据
通过Java编程处理XML服务定义(3)时间:2010-05-13 IBM Stephen Morris通过一个有限循环while (true),您可以确定期望的到来数据项的数量。该代码将一直执行循环,直到接收到最后一个数据项,此时将抛出一个异常(ArrayIndexOutOfBoundsException)。您必须使用这种异常机制,除非客户机已经了解期望的数据项数量。 从InputStream对象接收的XML数据被保存在ArrayList类的一个对象中。该类对于此类应用程序非常有用。完成类定义之后,ArrayList 具有一个特定的容量,总是匹配底层列表的大小。 在添加元素时,ArrayList对象的容量将自动扩展。因此,您无需担心会超过数组的极限,因为该类将为您处理这一问题。 此时,客户机具有 清单1 中数据的副本。客户机现在可以将带宽元素修改为所需的值,然后反向执行文件传输过程,从客户机发送到服务器。通过将 XML文件 从服务器移动到客户机,客户机实 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |