利用Lotus Connections Widget整合SharePoint文件列表

简介

随着社交软件在企业工作中越来越多的发挥作用,Lotus Connections (LC) 作为 IBM 公司一款 面向企业用户的社交协同软件,已经被很多企业部署用于提 高工作效率和管理内部资源。微软 SharePoint 也是业界流行的一款企业协作平 台,它的优势在于其高效的文档管理。在一个同时部署了 LC 和 SharePoint 的 企业,为了将两者的优势整合起来,我们可以借助于 LC 灵活的 widget 系统, 将 SharePoint 中的文件列表在 LC 的 widget 中显示出来。这样一来,在 LC Homepage 中,用户可以获得跨平台的 SharePoint 文档信息。

本文将介 绍如何在一个典型的安装有 SharePoint 和 LC 的环境中开发一个 HomePage Widget 用来显示 SharePoint 中 My Site 的文件列表。读者可以通过本文给出 的例子熟悉并上手 Lotus Connections 的 Widget/iWidget 开发。

项目 的实现分为两个部分 : 1) 利用 SharePoint 提供的 Web Services 从 SharePoint 的 MySite 文件列表中获取文件相关的信息。2) 在 Lotus Connections 中,利用已经获得的文件信息,开发一个 HomePage Widget. 客户 可以在 Lotus Connections 的 HomePage 中添加此 Widget, 从而获得自己在 SharePoint 中的文件列表,并可以通过点击文件列表中的链接直接进入到 SharePoint 中进行该文件的下载和编辑。本文中所提到的所有源代码可以在文 章最后的 下载中获得。

访问 SharePoint Web Services

这个部分介绍 SharePoint Web Services 和以及如何访问 SharePoint Web Services.

SharePoint Web Service 基于 ASP.NET,它开放出来一系列 Web Service 接口来支持互操作和远程调用。大部分的日常任务,诸如站点管理 ,目录管理,以及数据搜索等,SharePoint 提供的 Web Service 都能满足。

本文将用到 SharePoint Web Service 中的列表服务 (list web service). 通过列表服务,我们可以访问 SharePoint 站点中的列表以及列表数 据,比如文件,文件类型等。同时我们将通过一个 JAVA 客户端来调用 SharePoint 提供的 Web Service. 事实上,所有能够消费 Web Service 的客户 端和平台都可以用来访问 SharePoint 提供的 Web Service.

这里用到 JAVA 客户端是基于开源的 Apache 项目 Axis(Version1.4).  Axis 是 一个被广泛采用 Java Web Service 库,它实现了常用的 SOAP 协议,WSDL 规 范等。通过 Axis, 我们可以实现 Web Service 的消费以及发布。下面我们就将 详细介绍如何访问 SharePoint Web Service 中的列表服务。

第一步, 根据 WSDL 生成客户端的接口文件以及代理文件。
Axis 提供的一个工具 ”wsdl2java”来生成上述文件,你可以在 Axis 类库中找到这个工具 ("org.apache.axis.wsdl.WSDL2Java"), 它的常用用法是 :

% java org.apache.axis.wsdl.WSDL2Java (WSDL-file-URL)

这里的 WSDL-file-URL 是指 SharePoint Web Service 中的列表服务的 URL 地址,例 如本文所用的 Web Service 地址 :

http://% IP_ADDRESS%/personal/phil/_vti_bin/Lists.asmx

这个地址的后半部分” /_vti_bin/Lists.asmx”是约定的,前半部分则取自 你的站点名称。你可以通过在你的本地浏览器中输入这个地址来验证这个 URL 是否准确。

Wsdl2java 这个命令成功执行完了以后,你可以将生成的 Java 类导入项目,也可以直接编译,打包成一个 jar 包,放进项目的 Classpath.

第二步,根据前面生成的 Java 类 /Jar 包来访问 SharePoint 列表服务

创建 Java 类 SharepointWsClient用来封装 SharePoint Web Service 具体调用逻辑。下面讲解这个类的核心逻辑:

清单 1. 创建访问列表服务的代理类实例

//contruct the WSDL 

address
String 

wsdl_address=SiteUrl+"personal/"+loginName+"/_vti_bin/Lists.asmx";    

//contruct the proxy
Lists listService = new ListsLocator();
ListsSoapStub proxy = (ListsSoapStub) listService.
getListsSoap(new java.net.URL(wsdl_address));    

//set username/password for passing the web service authentication
proxy.setUsername(accountName);
proxy.setPassword(accountPass);

清单 2. 通过这个代理类 实例调用具体列表服务方法

//call the sharepoint list web service through proxy
GetListItemsResponseGetListItemsResult result = proxy.getListItems(
        listName, "", null, null, RowLimit, null, 

"");

清单 3. 处理返回结果

MessageElement element = result.get_any()[0];
Iterator it = element.getChildElements();
while (it.hasNext()) {
  MessageElement dataElement = (MessageElement) it.next();
  Iterator it2 = dataElement.getChildElements();
  while (it2.hasNext()) {
  MessageElement entryElement = (MessageElement) it2.next();
  DocEntry doc = new DocEntry();
  doc.setDocName(entryElement.getAttribute("ows_LinkFilename"));
  doc.setDocLink(SiteUrl+entryElement.getAttribute

("ows_FileRef").substring(3));
      try{
       doc.setLastModified_Date(DateUtils.parseDate(
              entryElement.getAttribute("ows_Modified"),dateFormat));  

  }catch(Exception e){}
  }
   }
}

开发 iWidget

iWidget 规范是由 IBM 制定的,用来定义和标准化面向浏览器端的组件模型 。iWidget 规范被广泛应用于多个 IBM 的产品线中,比如 Lotus Connections, Mushup Center 等等。

在 Lotus Connections 中,你可以发现很多用户 界面组件都是由 Widget 组成。目前 Lotus Connections V2.5 支持 iWidget1.0 规范。下面我们就将详细讲解如何开发一个用户自定义的 widget, 并将它部署在 Lotus Connections 的主页上。

由于 widget 本质上就是 一个 web 应用,所以我们首先要搭建一个 web 项目。下面 IBM Rational Application Developer 7.0 以为例。创建一个动态 web 项目。( 图 1)

图 1. 在 IBM Rational Application Developer 7.0 中创建 项目

Widget 主要包含两个关键文件,一个是 xml 描述文件,它包含了 widget 的定义 ; 另外一个就是 javascript 文件, 它包含了 widget 的功能逻辑。所以我们要在项目 web content 下分别创建这 两个文件 : sharepoint_widget.xml,sharepoint_widget.js.

除了创建这两个关键文件,我们还需要把 DOJO 的 javascript 库加入进来 。虽然 iWidget 规范并没有规定要用什么具体技术来实现 iWidget, 但是因为 Lotus Connections 是基于 DOJO 来是实现 iWidget 规范的,所以我们这里也 用 DOJO 来帮我们实现 widget 的核心功能。加入 DOJO 库后项目的结构如 ( 图 2) 所示

图 2. 加入 DOJO 库后的项目结构

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索web
, 文件
, widget
, service
, sharepoint
, esult et next
, wsdl浏览器web service
, wsdl2java
, axis1.4报错
, 一个
, connections
widget实现实例
too many connections、access connections、max connections、worker connections、max user connections,以便于您获取更多的相关知识。

时间: 2024-09-17 04:36:59

利用Lotus Connections Widget整合SharePoint文件列表的相关文章

Lotus Connections深度开发定制基本界面元素

本系列文章将以案例的方式逐步的介绍如何对 http://www.aliyun.com/zixun/aggregation/13548.html">Lotus Connections 软件进行深度开发定制,以搭建出完全个性化的企业社会化协作平台.同时,对如何有效的利用产品提供的 API 接口进行企业系统间的集成也以案例的方式进行了演示. 社会化协作软件在企业的日常工作中已经得到越来越广泛的使用.Lotus Connections 产品作为 IBM Social Business 解决方案的重

熟悉并上手Lotus Connections的Widget/iWidget开发

随着社交软件在企业工作中越来越多的发挥作用,http://www.aliyun.com/zixun/aggregation/13548.html">Lotus Connections (LC) 作为 IBM 公司一款 面向企业用户的社交协同软件,已经被很多企业部署用于提高工作效率和管理内部资源.微软 SharePoint 也是业界流行的一款企业协作平台,它的优势在于其高效的文档管理.在一个同时部署了 LC 和 SharePoint 的企业,为了将两者的优势整合起来,我们可以借助于 LC 灵

Windows XP利用TC快速创建文件列表

TC(Total Commander)是很多朋友都非常喜欢的一款超强资源管理工具,其实我们还可以利用TC快速创建文件列表并进行管理.例如,笔者希望获取"C:\Windows\SYSTEM32"文件夹下的所有可执行文件名,可以按照如下步骤进行: 第1步:设置显示类型 首先,请在主界面中打开C:\Windows\SYSTEM32文件夹,由于我们的目的是希望获取所有可执行文件名,因此需要在"显示→文件显示"菜单中选中"仅执行文件",这样将只列出EXE.

builder如何利用treeview做文件列表

问题描述 builder如何利用treeview做文件列表 就是要做出类似windows管理器的树列表,该怎么做呢,用treeview做,但是怎么在treeview里显示文件列表,求各位大神 解决方案 资源管理器左边区域显示目录的是treeview,而右边显示文件和目录的是ListView,是两个不同的控件 解决方案二: 资源管理器左边区域显示目录的是treeview,而右边显示文件和目录的是ListView,是两个不同的控件 解决方案三: // 完美解决方案void __fastcall TF

IBM发布Lotus Connections 4.0版本,揭示社交商务发展新思路

今天,IBM(NYSE:IBM)携 IBM Lotus Connections 4.0版本亮相中国.作为一款最新发布的企业社交软件,IBM Lotus Connections 4.0版本可通过社区.论坛等与员工.客户及合作伙伴展开协作.此外,该版本还将通过社交分析功能,帮助用户挖掘社交网络中有价值的信息,从而进一步推进企业内外部协作.借由IBM Lotus Connections 4.0版本的推出,IBM还深度阐释了 IBM 社交商务的"3D"优势(Dynamic.Differenti

Lotus Connections Files 3.0简介

简介 Lotus Connections Files 2.5 作为一款轻量级企业社会化文件管理与协作工具,受到了企业用户的诸多好评.Connections Files 3.0 在改进已有功能的基础上,增加了一些新功能.本文将结合具体应用场景,对 Connections Files 3.0 的新功能进 行详细介绍. 下面首先从最直观的界面入手,阐述 Connections Files 3.0 的界面新布局. 全新的用户界面 与 Connections Files 2.5 相比,Files 3.0

CB环境中实现在菜单中显示历史文件列表

本文介绍了如何在Windows环境下实现菜单中显示历史文件列表,同时概要介绍了Tregistry类的使用方法. 现在,在许多Windows应用程序都具有这样一个功能:可以在文件菜单下面显示列出最近访问过的文件,这使用户很容易再次访问曾经访问过的文件.在过去几年中,这项技术以成为拥有文件菜单项的应用程序的共同特色:如Wps系列和Office系列.在以前的DOS环境中,程序员一般通过创建一个文件用来记录文件列表:那么在Windows环境中,还有其他的方法吗?最近笔者利用C++ Builder5.0

WinRAR如何巧取文件列表

  如果想取得某一目录下的文件列表清单,手工去逐一记录整理实在麻烦,利用WinRar可以快速得到指定目录下的文件列表.在WinRar主窗口中选择合适的文件夹,点击菜单"工具"→"生成报告",在生成报告窗口中设置列表文件的保存路径和名称,如果勾选"使用HTML格式",那么就生成Html格式的列表文件,否则生成Txt格式的文件.在文件排序列表中选择文件的排序方法(包括按原始顺序,名称,大小,压缩后大小,修改时间,CRC校验等顺序),在"报告

ajax-web文件上传问题如何利用xmlHttpRequest对象上传大文件(1G或以上)

问题描述 web文件上传问题如何利用xmlHttpRequest对象上传大文件(1G或以上) 如题,本人小白一名,在学习实现一个资源共享系统,涉及到很多1GB以上的文件,查阅了很多资料,发现可以用ajax实现,步骤如下:1.通过javascript获取文件对象2.利用slice将文件切割成小片3.利用xmlhttprequest的send方法将片发送给处理程序4.php处理程序将文件拼接于是动手模拟了一下,可是总是没有该有的效果,求大神指导,谢谢!文件上传端test.php代码如下: 处理端代码