`
水卢(waterloo)
  • 浏览: 32316 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

通过Lotus Quickr REST API,开发一个我的空间Portlet

阅读更多

Lotus Quickr提供REST API访问其中的数据,这里我通过一个例子来说明如何通过REST API创建一个Portlet显示我的空间列表。

这里面我主要使用了两个apache包,httpclient和abdera。

REST API是一个http的请求,当用户访问的时候可以通过 http get的方法获得一个XML。因此这里我通过httpclient获得这个XML,然后采用abdera对这个XML进行解析。

 

//获取当前空间列表
<% List places = new PlacesHelper().getPlaces(request.getCookies()); %>
<table width="100%" border="1" cellspacing="2">
<tr>
    <th scope="col">我的空间</th>
    <th scope="col">管理员</th>
    <th scope="col">最近更新时间</th>
  </tr>
<%for(int i=0;i<places.size();i++){ %>
<tr>
<td><a href=<%=((Entry)places.get(i)).getAlternateLink().getResolvedHref() %>><%=((Entry)places.get(i)).getTitle() %></a></td>
<td><%=((Entry)places.get(i)).getAuthor().getName() %></td>
<td><%=DateFormat.getDateTimeInstance().format(((Entry)places.get(i)).getUpdated()) %></td>
</tr>
<%} %>
</table>

 

Helper类,用来访问REST 内容

 

public class PlacesHelper {	
	public List<Entry> getPlaces(Cookie[] cookies)
	{
              //通过httpclient get方法访问REST api
		HttpClient httpClient = new HttpClient();
		httpClient.getParams().setContentCharset("UTF-8");
		HttpMethod httpMethod = new GetMethod("http://ibmquickr.ibm.com/myqcs/rest/places/feed");
               //初始化http请求,使httpclient使用当前request的cookie。
		HttpState initState = new HttpState();
		for(int i=0;i<cookies.length;i++)
		{
			org.apache.commons.httpclient.Cookie cookie = new org.apache.commons.httpclient.Cookie();
			cookie.setDomain(cookies[i].getDomain());
			cookie.setPath(cookies[i].getPath());
			cookie.setName(cookies[i].getName());
			cookie.setValue(cookies[i].getValue());
			initState.addCookie(cookie);
		}
		httpClient.setState(initState);
		try {
			int statusCode = httpClient.executeMethod(httpMethod);
			if(HttpStatus.SC_OK == statusCode)
			{
				InputStream in = httpMethod.getResponseBodyAsStream();
                               //解析返回的XML
				Parser parser = Abdera.getNewParser();
				Document<Feed> doc = parser.parse(in);
				Feed feed = (Feed) doc.getRoot();
				httpMethod.releaseConnection();
                               //返回空间列表
				return feed.getEntries();
			}
		} catch (HttpException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		httpMethod.releaseConnection();
		return null;
	}
}

 

Portlet主类

public void doView(RenderRequest request, RenderResponse response) throws PortletException, IOException {
	response.setContentType(request.getResponseContentType());
		PortletRequestDispatcher rd = getPortletContext().getRequestDispatcher("/jsps/index.jsp");
		rd.include(request,response);
	}

 

 

需要注意的是,从apache下载下来的abdera包包含httpclient以及servlet-api-2.5-6.1.5.jar包,servlet包与Websphere Portal自带的包有重复,因此无需将servlet包,拷贝到lib目录下。

 

 

验证平台:

WebSphere Portal 615

Lotus Quickr for Domino 8.2

httpclient 3.1

abdera 0.4.0

 

 

分享到:
评论
1 楼 seal733 2010-05-06  
httpClient真是个窃取网站信息的好工具。

相关推荐

    通过HTTPClient访问启用SSL的Quickr REST API

    Quickr通常指的是IBM Lotus Quickr,它是一个协作平台,允许用户共享文档、日程和任务。REST API使得开发者可以通过HTTP协议与其进行集成。 启用SSL是为了确保数据在互联网上传输时的隐私和完整性,防止中间人攻击...

    IBM Lotus Quickr产品演示

    IBM Lotus Quickr是新一代协作产品,改演示为该产品的演示

    深入了解_lotus_quickr的文档管理.doc

    总的来说,Lotus Quickr 的文档管理功能集成了先进的 Web 2.0 技术和开放标准,为企业提供了一个灵活、安全、高效的文档管理和协作平台。无论是文档的日常操作,还是高级的定制需求,都能得到充分满足,从而提升了...

    IBM Lotus Quickr™ Developer's Guide

    Lotus Quickr 支持 SOAP 和 REST 标准,使得开发者可以通过 Web 服务接口轻松地与 Lotus Quickr 进行交互。 - **服务定义 (Service Definitions)** - **概述**:介绍如何定义和使用服务接口。 - **认证 ...

    Lotus Quickr 红皮书

    Lotus Quickr结合了讨论区、文档库、日历、任务和博客等功能,为用户提供了一个集中的工作空间,便于团队成员协同工作。它支持多种文件格式,包括Microsoft Office文档,使得跨平台协作变得简单。 2. **源码**: ...

    Lotus Quickr配置安全性

    Lotus Quickr是一款强大的协作工具,主要用于团队协作、文档管理和知识共享。在企业环境中,确保其配置的安全性至关重要,因为这直接影响到数据的保护和用户隐私。本篇文章将深入探讨Lotus Quickr的安全配置,帮助...

    Lotus Quickr与IBM WebSphere Portal的单点登录

    Lotus Quickr与IBM WebSphere Portal的单点登录(SSO,Single Sign-On)是一种集成解决方案,允许用户在访问一个系统(如Portal)后,无需再次输入凭证即可访问其他相互关联的系统(在这种情况下是Quickr)。...

    190-982 IBM Lotus Quickr 8.1 Admin for Portal

    Terrance成功创建了一个Web SSO配置文档,以将他的Lotus Domino域与正在运行Lotus Quickr的WebSphere Application Server进行集成。然而,在将该文档复制到该域中的所有其他Lotus Domino服务器后,他仍然无法成功地...

    IBM Portal 集成Quickr

    【IBM Portal 集成Quickr】是一种技术实践,它允许用户通过IBM Portal无缝访问Quickr(一个协作和文档管理工具)的服务,实现单点登录(Single Sign-On, SSO)。这种集成使得用户在一个平台上就能方便地管理和共享...

    Quickr系统用户使用手册

    Quickr系统是由天阳宏业开发的一款协同工作平台,它整合了文档管理、任务分配、沟通交流等多种功能,为团队提供了一个统一的工作空间。系统的核心目标是简化日常工作流程,提高团队间的协作效率,以及确保信息的...

    Lotus Domino BS开发 --Lotus历史简介

    Price Waterhouse成为了Notes的第一个大客户,预示着它将在商业领域产生深远影响。 1989年,Lotus Notes 1.0正式发布,运行在DOS 3.1或OS/2操作系统上。这个版本包含了诸多创新特性,如RSA公钥加密技术,用于保证...

    QuickrIntro

    【Lotus Quickr简介】 ...总的来说,Lotus Quickr是一款旨在提高团队效率、简化协作流程、强化信息管理的解决方案,它通过消除传统协作工具的痛点,帮助企业更有效地利用信息资源,实现快速应变,提升竞争力。

    quickr练习实例

    1. **创建工作空间**:按照Quickr的标准流程,创建一个新的工作空间。 2. **添加页面和组件**:根据需求向工作空间中添加所需的页面和组件。 3. **编辑和配置**:对各个页面和组件进行必要的编辑和配置,确保它们...

    quickr与portal单点登陆

    【Quickr与Portal单点登陆】是指在一个统一的登录环境下,用户只需登录一次,即可访问Quickr和Portal两个系统,无需分别输入凭证。这提高了用户体验,增强了安全性,并简化了身份验证流程。 首先,实现Quickr与...

    LOTUS综合技术资料

    Lotus Quickr则是文档管理和协作工具,允许团队成员共享文件、创建在线会议和协作空间。 随着云计算和移动设备的普及,IBM也推出了LotusLive和Lotus Notes Traveler来适应这些变化。LotusLive是云协作服务,提供...

    Lotus企业应用解决方案.rar

    Lotus企业应用解决方案是一款基于IBM Lotus软件平台的企业级应用系统,旨在帮助企业...通过集成的 Lotus Notes、Domino、Connections、Quickr、Sametime等组件,企业能够构建一个安全、高效且富有协作精神的工作环境。

    Quickr部署系列

    ### Quickr部署系列知识点 #### 一、QuickrDomino系统概述 在“Quickr部署系列”中,首先介绍的是QuickrDomino系统的概述部分。这部分涵盖了QuickrDomino所支持的操作系统、与第三方产品的集成及兼容性以及安装...

Global site tag (gtag.js) - Google Analytics