科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道通过Java编程处理XML 为SOA减少内存占用

通过Java编程处理XML 为SOA减少内存占用

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

很多大型软件供应商还在开发各自的 SOA 产品。因此,SOA 领域目前综合了各种技术,包括 Java Business Integration (JBI)、Intelligent Event Processing 和 Business Process Execution Language (BPEL) 服务器。

作者:Sreedevi Penugonda 来源:佚名 2007年11月17日

关键字:

  • 评论
  • 分享微博
  • 分享邮件

在本页阅读全文(共3页)

一种基于 XML 文件的 Java 机制

  客户机现在将服务配置文件的副本保存在磁盘中。必须对该文件进行解析以提取 XML 数据。让人意外的是,这实现起来有些难度,对于较大的文件尤其如此。解决问题的关键是使用合适的解析工具。本文中使用的工具是 dom4j,该工具允许您将 XML 数据解析为一个 Java 对象。您还可以使用一个基于 Simple API for XML (SAX) 的解析器,但是 SAX 是一种较低级的技术。您将看到,dom4j 工具仅需要很少的工作即可完成解析。清单 6 引用自本文附带的 ProcessEventXml.java 文件,展示了使用 dom4j 解析文件所需的主要元素。

  清单 6. dom4j 处理 XML 数据

   

try
{
handler.treeWalk(handler.parse(new File(argv[0])));
}
catch (Throwable t)
{
t.printStackTrace();
}
}

public Document parse(File url)
throws DocumentException
{
SAXReader reader = new SAXReader();
Document document = reader.read(url);
return document;
}

public void treeWalk(Document document)
throws Exception
{
treeWalk(document.getRootElement());
}

  基本上只需要两种方法:parse() 和 treeWalk()。当我运行经过编译的类时,我获得了如 清单 7 所示的输出。如果您希望亲自运行代码,请确保下载、安装 dom4j 副本,并添加到 CLASSPATH 中(最后一步就是将相应的 JAR 文件添加到您的 CLASSPATH 变量中)。然后,编译 ProcessEventXml.java 文件并使用以下命令运行程序:

  java ProcessEventXml ServiceDefinition.xml

  清单 7. 使用 dom4j 处理 XML 文件

  

java ProcessEventXml ServiceDefinition.xml
Josephine Bloggs Internet 1mbps 1Gbyte 95

  正如您看到的,仅需少量工作即可整洁地显示 XML 数据。这些工作都是由 dom4j 处理的。事实上,大部分工作是通过 treeWalk() 方法完成的,这是一种只有到达文件末尾才进行调用的递归式方法。这里向您展示了 dom4j 的一个功能:在内存中进行处理。需要注意的是,该技术不适合用于特别大型的 XML 文件,特别是如果您的 Java 设备非常小的话。然而,在本文的例子中,XML 数据集非常小,因此使用这个功能不会产生问题。

  您的基于文件的客户机现在已经成功访问了 XML 数据。客户机可以根据需要修改数据并编写新的 XML 文件。然后将其传输回服务器进行处理。像上文一样,客户机在这一过程中使用了该服务。

查看本文来源

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章