简介
随着社交软件在企业工作中越来越多的发挥作用,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,以便于您获取更多的相关知识。