`
lijun87
  • 浏览: 264270 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

基于Atom协议的数据接入规范

    博客分类:
  • ATOM
阅读更多

基于Atom协议的数据接入规范

基于Atom协议的数据接入规范... 1

读者对象... 2

简介... 2

本文... 2

导读... 2

被接入系统需要做的:提供XML... 2

.NET系统:利用Atom.NET框架来提供atom... 3

java系统:利用abdera框架提供atom... 3

action中添加getAtomLists方法... 4

1)从当前系统查询出对应的记录以及记录总数... 4

2)从当前系统查询出对应的记录以及记录总数... 5

3)最后将feed输出到response流中... 5

java生成atom源的源代码... 6

atom各属性说明... 7

工单列表接入... 8

信息发布接入... 9

导航树接入... 9

 


 

读者对象

被接入系统开发人员

简介

 Atom 发布协议是一种基于 HTTP 的用于创建和编辑 Web 资源的方法。它基本上围绕着这样一种观念设计,即利用 HTTP 协议提供的基本操作(如 GETPUT DELETE)传输表示 blog 项、博客、wiki 页面、日程记录等内容的 Atom 1.0 Feed and Entry 文档实例。

本文

本文是介绍门户基于atom规范的接入待办工单、待处理事宜、信息发布等列表的开发规范(目前只支持接列表),web系统提供符合规范的atom源,并提供http访问路径,门户系统就能利用来读取并解析web系统提供的列表数据。需要注意的是,被接入方需要协助解决我方利用程序URL访问权限问题,需提供一个访问通道。

导读

       读者可先从简介了解,再从提供XML一节获得感性了解,知道要提供的atom源具体是什么样,然后可以根据您的系统是java或者.net系统对应选择java系统提供atom或者.net系统提供atom。然后当知道如何编写代码后,您会发现还需要了解atom的属性,接下来您可根据接入的是工单列表或者信息发布等选择阅读对应章节。

 

被接入系统需要做的:提供XML

1)需要提供一个xml格式的源,并提供完整的访问路径(如:http://ip:port/eoms/workbench/memo/tawWorkbenchMemoMain.do?method=getLists)xml内容示例如下图所示:

 

 

.NET系统:利用Atom.NET框架来提供atom

Atom.NET 是一个开源的用于处理 ATOM C# 组件

项目主页: http://atomnet.sourceforge.net/

文档地址: http://atomnet.sourceforge.net/doc/index.html

下载地址:

http://sourceforge.net/project/showfiles.php?group_id=98691&package_id=105862&release_id=253304

java系统:利用abdera框架提供atom

使用apache abdera框架接入java web应用的列表,在工程中导入所有需要的jar包。当前使用的版本是Abdera 0.4.0,可以从官方网站http://abdera.apache.org/下载。

 

action中添加getAtomLists方法

1)从当前系统查询出对应的记录以及记录总数

代码说明:

    1)参数pageIndexpageSize直接从request中可以取到,访问时由读源方提供;

2)查询条件由提供atom源方确定,where 1=1 可以读取所有记录;

3mgr替换成对应模块的mgr,该mgr需要返回查询得到的记录集合和记录总数。

2)从当前系统查询出对应的记录以及记录总数

代码说明:

    1 以下两条语句创建了一个Feed

Factory factory = Abdera.getNewFactory();

       Feed feed = factory.newFeed();

2接下来就是把查询到的所有记录循环插入到Feed中,在循环体中利用

Entry entry = feed.insertEntry();

Feed创建一个子节点,可以存一条记录,依次循环即可。

       3entry.setText(tawWorkbenchMemo.getUserName());

这句代码插入后的效果是提供xmlxml示例图中的entrytext字段

       4title一般是存储如工单流水号这样的字段,通过链接可以直接访问到详细页面

entry.setTitle(tawWorkbenchMemo.getTitle());

   5entry的其它字段存储请参考提供xml一节中介绍。主要就是区分StringDate的输入。

  6) 下面这条语句是提供xml一节的xml示例中的 “38”,该字段约定用来存储总记录数。

feed.setText(map.get("total").toString());

3)最后将feed输出到response流中


java生成atom源的源代码

所有代码如下,

    /**

     * 创建atom

     */

    public ActionForward getAtomLists(ActionMapping mapping, ActionForm form,

           HttpServletRequest request, HttpServletResponse response)

           throws ServletException, IOException {

 

       try {

           // --------------用于分页,得到当前页号-------------

           final Integer pageIndex = new Integer(request

                  .getParameter("pageIndex"));

           final Integer pageSize = new Integer(request

                  .getParameter("pageSize"));

 

           TawWorkbenchMemo tawWorkbenchMemo = null;

           // 得到查询的条件

           String whereStr = " where 1=1";

           ITawWorkbenchMemoManager mgr = (ITawWorkbenchMemoManager) getBean("ItawWorkbenchMemoManager");

           Map map = (Map) mgr.getTawWorkbenchMemos(pageIndex, pageSize,

                  whereStr);

           List list = (List) map.get("result");

 

           // 创建ATOM

           Factory factory = Abdera.getNewFactory();

           Feed feed = factory.newFeed();

           // 分页

           for (int i = 0; i < list.size(); i++) {

              tawWorkbenchMemo = (TawWorkbenchMemo) list.get(i);

              Entry entry = feed.insertEntry();

              entry.setTitle(tawWorkbenchMemo.getTitle());

entry.setContent(“http://www.google.com”);

              entry.setSummary(tawWorkbenchMemo.getContent());

              entry.setLanguage(tawWorkbenchMemo.getReciever());

              entry.setText(tawWorkbenchMemo.getUserName());

              entry.setRights(tawWorkbenchMemo.getLevel());

              entry.setUpdated(tawWorkbenchMemo.getCreattime());

              entry.setPublished("2009-01-21");

              entry.setEdited(tawWorkbenchMemo.getCreattime());

              Person person = entry.addAuthor(tawWorkbenchMemo.getUserid());

              person.setName(tawWorkbenchMemo.getUserName());

           }

           // 每页显示条数

           feed.setText(map.get("total").toString());

 

           OutputStream os = response.getOutputStream();

           PrintStream ps = new PrintStream(os);

           feed.getDocument().writeTo(ps);

 

       } catch (Exception e) {

           e.printStackTrace();

       }

       return null;

       }

atom</sp
分享到:
评论

相关推荐

    java开源包3

    GWT Advanced Table 是一个基于 GWT 框架的网页表格组件,可实现分页数据显示、数据排序和过滤等功能! Google Tag Library 该标记库和 Google 有关。使用该标记库,利用 Google 为你的网站提供网站查询,并且可以...

    JAVA上百实例源码以及开源项目源代码

     Java数据压缩与传输实例,可以学习一下实例化套按字、得到文件输入流、压缩输入流、文件输出流、实例化缓冲区、写入数据到文件、关闭输入流、关闭套接字关闭输出流、输出错误信息等Java编程小技巧。 Java数组倒置...

    java开源包1

    GWT Advanced Table 是一个基于 GWT 框架的网页表格组件,可实现分页数据显示、数据排序和过滤等功能! Google Tag Library 该标记库和 Google 有关。使用该标记库,利用 Google 为你的网站提供网站查询,并且可以...

    java开源包4

    GWT Advanced Table 是一个基于 GWT 框架的网页表格组件,可实现分页数据显示、数据排序和过滤等功能! Google Tag Library 该标记库和 Google 有关。使用该标记库,利用 Google 为你的网站提供网站查询,并且可以...

    java开源包11

    GWT Advanced Table 是一个基于 GWT 框架的网页表格组件,可实现分页数据显示、数据排序和过滤等功能! Google Tag Library 该标记库和 Google 有关。使用该标记库,利用 Google 为你的网站提供网站查询,并且可以...

    java开源包2

    GWT Advanced Table 是一个基于 GWT 框架的网页表格组件,可实现分页数据显示、数据排序和过滤等功能! Google Tag Library 该标记库和 Google 有关。使用该标记库,利用 Google 为你的网站提供网站查询,并且可以...

    java开源包6

    GWT Advanced Table 是一个基于 GWT 框架的网页表格组件,可实现分页数据显示、数据排序和过滤等功能! Google Tag Library 该标记库和 Google 有关。使用该标记库,利用 Google 为你的网站提供网站查询,并且可以...

    java开源包5

    GWT Advanced Table 是一个基于 GWT 框架的网页表格组件,可实现分页数据显示、数据排序和过滤等功能! Google Tag Library 该标记库和 Google 有关。使用该标记库,利用 Google 为你的网站提供网站查询,并且可以...

    java开源包10

    GWT Advanced Table 是一个基于 GWT 框架的网页表格组件,可实现分页数据显示、数据排序和过滤等功能! Google Tag Library 该标记库和 Google 有关。使用该标记库,利用 Google 为你的网站提供网站查询,并且可以...

    java开源包8

    GWT Advanced Table 是一个基于 GWT 框架的网页表格组件,可实现分页数据显示、数据排序和过滤等功能! Google Tag Library 该标记库和 Google 有关。使用该标记库,利用 Google 为你的网站提供网站查询,并且可以...

    java开源包7

    GWT Advanced Table 是一个基于 GWT 框架的网页表格组件,可实现分页数据显示、数据排序和过滤等功能! Google Tag Library 该标记库和 Google 有关。使用该标记库,利用 Google 为你的网站提供网站查询,并且可以...

    java开源包9

    GWT Advanced Table 是一个基于 GWT 框架的网页表格组件,可实现分页数据显示、数据排序和过滤等功能! Google Tag Library 该标记库和 Google 有关。使用该标记库,利用 Google 为你的网站提供网站查询,并且可以...

    java开源包101

    GWT Advanced Table 是一个基于 GWT 框架的网页表格组件,可实现分页数据显示、数据排序和过滤等功能! Google Tag Library 该标记库和 Google 有关。使用该标记库,利用 Google 为你的网站提供网站查询,并且可以...

    Java资源包01

    GWT Advanced Table 是一个基于 GWT 框架的网页表格组件,可实现分页数据显示、数据排序和过滤等功能! Google Tag Library 该标记库和 Google 有关。使用该标记库,利用 Google 为你的网站提供网站查询,并且可以...

    JAVA上百实例源码以及开源项目

     Java数据压缩与传输实例,可以学习一下实例化套按字、得到文件输入流、压缩输入流、文件输出流、实例化缓冲区、写入数据到文件、关闭输入流、关闭套接字关闭输出流、输出错误信息等Java编程小技巧。 Java数组倒置...

Global site tag (gtag.js) - Google Analytics