首页专业论文技术应用政策标准解决方案常用资料经验交流教育培训企业技术专家访谈电力期刊
您现在的位置:北极星电力网 > 技术频道 > 常用资料 > 向IBMWorkplaceportlet添加到场提醒

向IBMWorkplaceportlet添加到场提醒

北极星电力网技术频道    作者:佚名   2008/8/6 13:42:54   

 关键词:  KP IBM

级别:中级

BryanDaniel
软件工程师,IBM
2005年7月

了解如何使用IBMWorkplaceCollaborationServicesAPIToolkit,来向IBMWorkplaceportlet添加到场提醒并帮助回答那个古老的问题:有人在吗?

IBMWorkplaceCollaborationServices是一个提供了立即可用的通信和协作服务的集成环境,这些服务使人们可以更有效地工作。WorkplaceCollaborationServices提供了诸如电子邮件、日程表和工作安排、在线培训、即时消息传递、Web会议和文档管理等功能。这些开箱即用的功能提供了一个完全协作的解决方案,该解决方案在许多情况下为您的用户提供了完成工作所需的一切。

此外,WorkplaceCollaborationServices还提供了IBMWorkplaceCollaborationServicesAPIToolkit。该工具箱允许您使用新的协作portlet、服务,或者二者都使用,来扩展WorkplaceCollaborationServices。您可以通过访问工具箱页面来下载IBMWorkplaceCollaborationServicesAPIToolkit。

本文是Workplace应用程序开发系列文章的第一篇。本文介绍了如何使用IBMWorkplaceCollaborationServicesAPIToolkit来向Workplaceportlet添加到场提醒。我们将以对该工具箱的简短概述开始,然后讨论向portlet添加到场提醒所涉及的步骤。本文假定您是一个有经验的Java开发人员,并熟悉IBMWorkplaceCollaborationServices。要了解更多信息,请访问developerWorks上的IBMWorkplace资源中心。

IBMWorkplaceCollaborationServicesAPIToolkit
IBMWorkplaceCollaborationServicesAPIToolkit使开发人员可以使用J2EE编程模型来构建业务组件和portlet。WorkplaceCollaborationServices2.5中的该工具箱提供了下面的公共应用程序编程接口(API)和服务提供者接口(SPI)。

IBMWorkplaceCollaborationServicesJSP标签
WorkplaceJSP标签使portlet开发人员能快速结合由Workplace产品为portlet提供的丰富的协作功能。这次提供的两个标签是人员标签(persontag)和在线中心标签(on-linecentertag)。人员标签提供了命名出现在portlet中的人员的即时协作功能。这提供了动态地表明一个人是否在线的方法,并提供了一个协作功能菜单,如电子邮件和聊天。在线中心标签已经被组合到了Workplace页面的页眉当中,但是您可以把它添加到任何由portlet生成的新窗口中。该标签允许您能够让用户控制他们的在线状态(活动、离开、请勿打扰)。

WorkplaceInstantMessagingSPI
WorkplaceInstantMessagingSPI使您能够在即时消息交付之前截获它们。您可以执行诸如文件过滤、阻塞和即时消息内容翻译等功能。您也可以通过该SPI存档或记录即时消息。您可以把该接口作为服务器上的servlet执行。每次Workplace即时消息传递服务器交付一个消息时它就会执行。

WorkplaceMailMessagingSPI
通过提供邮件处理程序和交付扩展,WorkplaceMailMessagingSPI扩展了Workplace消息传递服务。这两个接口都是作为可以从服务器上执行的类文件实现的。处理程序接口提供了到所有经过消息系统传递的邮件的低级访问。您可以使用多个处理程序来执行诸如病毒扫描和垃圾邮件过滤之类的功能。交付接口使您能够控制将消息交付到哪个文件夹,还可以使用它来更改消息的目的文件夹(如果它违反了一些预定义的业务规则)。

CollaborativeApplicationComponentInterfaces
CollaborativeApplicationComponentInterfaces使开发人员能够构建与现有的IBMWorkplace基础设施集成的业务组件。这些业务组件是作为无状态会话EnterpriseJavaBean(EJB)实现的,并用作表示业务概念、过程和服务的方法。诸如小组日程表、小组任务表、联系人列表和搜索等开箱即用的功能,都是作为业务组件实现的。在构建一个业务组件后,您可以使用WorkplaceBuilder把该组件组合到Workplace应用程序中去。

ComponentandApplicationInfrastructureServicesAPIs
该工具箱中新增的ComponentandApplicationInfrastructureServicesAPIs是由两组截然不同的API组成的:组件服务和应用程序基础设施。组件服务API允许您访问由现有的Workplace业务组件提供的服务。该API允许您执行诸如修改日程表条目、访问讨论主题、创建文档、发送邮件和安排Web会议等功能。这允许您将这些协作行为更深入地集成到自己的解决方案中。

应用程序基础设施API允许您管理Workplace应用程序和应用程序模板。包括创建应用程序和模板、访问应用程序和模板目录以及管理应用程序实例的能力。

IBMWorkplaceClientTechnologyplatformAPIs
该工具箱的另一个新增功能就是IBMWorkplaceClientTechnologyplatformAPIs,它允许您使用自己定制的应用程序来扩展IBMWorkplace客户机平台。您可以使用Web浏览器所不能提供的功能,包括访问操作系统特定用户控制权、使用脱机执行机制和与基于服务器的组件通信。

添加到场提醒
本文的其余部分将演示如何把IBMWorkplaceCollaborationServicesJSP标签结合到现有的portlet中去。我们的目标是要说明可以多快地将一个现有的portlet立即部署在WebSphere应用程序服务器上,并使它在WorkplaceCollaborationServices内运行。在我们的例子中,启用了一个带有上下文相关的菜单的PurchaseOrderportlet,这些菜单向工作场所内的用户提供协作功能。用户不仅能看到谁在进行订购,还可以看到这个人是否在线,通过即时消息传递、电子邮件或二者都用来联系此人,并从公司名录中检索相关信息。这个过程与其他portlet开发人员启动自己的portlet所需的步骤类似。

首先,在一个IDE(如IBMRationalApplicationDeveloper)中打开您的portlet项目。(本文的演示中使用的是RationalApplicationDeveloper。您可以从developerWorks:Rational上下载RationalApplicationDeveloperforWebSphereSoftwareV6.0的测试版。)当前PortalToolkit(V5.0.2.2)中包含的提醒类和标签库不包含与WorkplaceCollaborationServices中提供的同等级别的功能。(注意:IBMWorkplaceCollaborationServices使用了WebSpherePortalV5.0.2.2。)通过打开项目属性并选择Java-BuildPathLibraries-AddExternalJARs,从WorkplaceCollaborationServices服务器添加<install_dir>\WorkplaceServer\lwp_lib\lwp.peoplePersonTagTaglib.jar文件到类路径。重复相同的步骤,添加下列JAR文件:

  • <install_dir>\WorkplaceServer\lwp_ext\lwp.peopleProtoAPI.jar
  • <install_dir>\WorkplaceServer\lwp_ext\lwp.commoninfrautil.jar
  • <install_dir>\AppServer\lib\wmm.jar

      还要从WorkplaceCollaborationServices服务器上导入<WPS_ROOT>\shared\app\WEB-INF\tld\people.tld文件到项目中的WebContent/WEB-INF/tld文件夹。

      要向每个用户名添加一个能显示在portlet中的上下文相关的协作功能菜单,请找到portlet项目中显示用户名的JSP,并打开进行编辑。您可能需要编辑多个JSP文件,这取决于您的门户应用程序的复杂性。

      为了使标签库能找到所需的类文件,必须导入正确的程序包。为此,向JSP文件中的导入指令添加com.lotus.cs.*(参见图1)。注意:该程序包已经包含在IBMWorkplaceJava运行时的类路径中了。

      图1.导入指令

      到场提醒功能(如确定用户的在线状态)是由WorkplaceCollaborationServices中的JSP标签提供的。在使用人员标签之前,向正确的标签库添加一个引用(参见图2)。在JSP中找到引用portlet标签库(portlet.tld)的行,并紧随其后添加下面的行:

      <@tagliburi="/WEB-INF/tld/people.tld" prefix="pa">

      图2.标签库

      接下来,设置协作环境。这涉及到设置环境属性(如服务器的位置)、登录用户的凭证和适当语言的资源字符串。通过使用CSEnvironment类对象,这些任务很容易完成。在先前输入的标签库引用后面添加下面的scriptlet:

      <CSEnvironmentenviron=CSEnvironment.getEnvironment(request);CSCredentialscred=environ.getCredentials(request);>

      在JSP文件中找到显示用户名的代码。在大多数情况下,用户名要么是从字符串变量得到,要么是从会话对象中得到。例如,在我们的例子中所使用的PORequestportlet,其联系人姓名是从POItemBean对象得到的,并作为表格中的值显示:

      <!--Displaypurchaseordercontactname--><TDnowrapalign="left"><=POItemBean.getContactPerson()></TD>

      要对每个用户名添加协作功能菜单,请使用人员标签。人员标签语法如下:

      <pa:personvalueType="type" value="type_name" displayName="name"skin="skin_JSP_name"></pa:person>

      valueType和value参数指定了用户被设置为如何确定其在线状态。valueType参数可以被设置为LDAPDN(LDAPDistinguishedName)、EMAIL、WMMID或MEMBERDN(MemberDistinguishedName)。value参数则必须根据指定的类型设置。例如,如果valueType被设为EMAIL,value参数就会包含此人的电子邮件地址(例如,user@ibm.com)。displayName参数指定了哪个名字会被人员标签显示在portlet中。skin参数是可选的,它允许您定制由人员标签呈现的人员链接菜单的外观。

      注意:仍然支持<pa:person>JohnDoe</pa:person>格式(也即不带属性),但是建议以后不要使用。

      使用人员标签来代替用来显示用户名的语句。确保为每个参数指定适当的值。例如,把上一步中所示的代码调整为如下:

      <!--Displaypurchaseordercontactname(withawareness)--><TDnowrapalign="left"><pa:personvalueType="EMAIL" value="<=POItemBean.getContactPersonEmail()>" displayName="<=POItemBean.getContactPerson()>"></pa:person></TD>

      <pa:person>标签是单独的一行,这很重要。在中间添加一个回车符号或换行符将导致运行时JavaScript出错。(前面代码中的<pa:person>标签语句显示为两行,这只是为了清晰可读。)

      在保存更改后,把门户项目作为WAR文件导出。在RationalApplicationDeveloper中,这是通过在项目上右击并选择Export实现的。选择WAR文件,然后单击Next。在输入文件名后,单击Finish完成导出。

      图3.导出界面

      门户应用程序的WAR文件可以与部署到WebSpherePortal上相同的方式,部署到WorkplaceCollaborationServices服务器上。以管理员的身份登录WorkplaceCollaborationServices并选择页面顶部的Administration链接。选择Portlets-Install,并按照提示安装门户应用程序WAR文件。

      安装完门户应用程序之后,把它放在要使用的页面上。在管理员页面上,选择Portal-UserInterface-ManagePages。导航到MyPortal-MyWork并向一个已有页面添加portlet。(也可以选择创建新的标签和页面以放置portlet。)

      在把portlet添加到页面之后,导航到包含portlet的页面。注意目前在线的用户旁边都有一个人形图标。当工作场所中的人的状态改变时,portlet随之更新状态。

      图4.带有到场提醒的Portlet

      除了显示此人的状态,还将会弹出一个提供协作功能(如电子邮件和聊天)的菜单。还可以查看某人的个人记录和把某人添加到您的地址簿中。

      结束语
      在本文中,我们演示了如何使用WorkplaceJSP标签,来把Workplace功能(在本文中是到场提醒)结合到门户应用程序中。此外,由于协作服务是在单一的基于J2EE的基础设施中管理的,所以您可以向portlet添加到场提醒,而无需管理用户到即时消息传递服务器的连接。

      我们展示了向portlet添加到场提醒,然后部署portlet到IBMWorkplaceCollaborationServices环境中所需的步骤。我们首先找到显示用户名的JSP文件。然后使用引用到场提醒标签库和在portlet中设置协作环境的语句,更新每个JSP文件。最后的更新涉及到显示用户名的人员标签的使用。该标签提供了在每个人的名字旁边显示一个上下文相关的协作功能菜单和一个说明其在线状态的指示器的业务逻辑。虽然本文没有讨论,但菜单标签库也支持使用自己定制的行为来扩展菜单。

      向门户应用程序添加到场提醒功能只是把解决方案与IBMWorkplaceCollaborationServices集成的众多可能方式之一。在该系列文章的下一部分,我们将讨论使用InstantMessagingServiceProviderInterface(SPI)来增强PurchaseOrderportlet的聊天功能。

    • 来源:互连网
      友情链接
      北极星工程招聘网北极星电气招聘网北极星火电招聘网北极星风电招聘网北极星水电招聘网北极星环保招聘网北极星光伏招聘网北极星节能招聘网招标信息分类电子资料百年建筑网PLC编程培训

      广告直拨:   媒体合作/投稿:陈女士 13693626116

      关于北极星 | 广告服务 | 会员服务 | 媒体报道 | 营销方案 | 成功案例 | 招聘服务 | 加入我们 | 网站地图 | 联系我们 | 排行

      京ICP证080169号京ICP备09003304号-2京公网安备11010502034458号电子公告服务专项备案

      网络文化经营许可证 [2019] 5229-579号广播电视节目制作经营许可证 (京) 字第13229号出版物经营许可证新出发京批字第直200384号人力资源服务许可证1101052014340号

      Copyright © 2022 Bjx.com.cn All Rights Reserved. 北京火山动力网络技术有限公司 版权所有