分享

利用WebLogic Portal 8.1 SP3开发Java Portlets

 smoking_boy 2005-08-24

Java portlets 是构建在 JSR 168 portlet标准之上的,有时候他们被打包放在WARWeb Application Archive)文件中提供给开发者使用。这篇文章就介绍了如何使用以WAR文件分发的 Java portlets

下载作者提供的与本文相关的文件。

WebLogic Portal 8.1 SP3开始,有两种新方法能使打包在WAR文档中的portlets可以在门户中被访问。您可以将portlets集成为已有门户web应用的一部分,或者选择将portlets放在单独的web应用中。我们将分别利用Portlet Preparer ToolWeb services for Remote PortletsWSRP)来展示这两种方法。您可以根据自己的需求选择最适合的方式:

·          单一WAR文件——使用portlet preparer 工具将WAR内容集成到现有项目中。如果您正在使用一小部分第三方portlets和您自己的门户项目,这种方式比较适用。

·          多个WAR文件——利用WSRP,可以将portlets保存在一个单独的WAR中,并从目标门户项目中引用它。如果您有大量项目拥有多个第三方portlets,最好考虑这种方式。


下面我们将详细介绍这两种方式。

单一WAR文件——使用Portlet Preparer工具
Portlet Preparer Tool
作为一种工具可以从dev2dev网站获得:
http://dev2dev./codelibrary/code/portletpreparer.jsp

这个工具从包含在WAR文件中的JSR168 portlets中创建.portlet文件,因此允许WebLogic Workshop将此文件的内容导入到一个门户Web项目中。运行preparer 工具的步骤是简单而直观的,有如下两种可选方式:

·          portlets添加到一个新的项目。

·          portlets添加到一个现有门户项目中。


以下是对于每种方式的步骤:

portlets添加到一个新的项目
要导入一个包含JSR168 portlets WAR文档,完成以下步骤:

1.        portletConverter.jar解压缩到硬盘的一个临时目录中(以下我们称此目录为<converter-root>)。

2.        WAR文件移到<converter-root>中。

3.        WEBLOGIC_HOME设置为env.sh 或者 env.bat(依平台而定)。

4.        运行env.sh 或者 env.bat(依平台而定)。

5.        运行ant -Dwar.file=(<war-file-name>WAR文件的文件名)

6.        <converter-root>下生成一个叫做tempDir的目录。

7.        打开WebLogic Workshop并将tempDir作为一个门户Web项目导入。


Portlets添加到一个现有门户项目中

要在现有门户Web应用中添加portlets,需要完成以下步骤:

1.        完成上述的第1-7步。

2.        复制所有必需的类文件到WEB-INF\classes目录,同时复制所有必需的jar文件到WEB-INF\lib目录。

3.        web.xml作必要的修改(例如:servlet定义)。

4.        向每个加入的portletportlet.xml文件中添加元素(这些拷贝来自前面创建的tempDir 目录中的portlet.xml)。

5.        tempDir\portlets中拷贝.portlet文件到您的Web应用中。

6.        portlets添加到您的门户。


多个WAR文件:使用远程 Portlets Web 服务(WSRP
 
利用WSRP,您可以在单独的Web应用中部署Java portlets,并从门户项目中引用它们。要了解关于WSRP如何工作的更多信息,请访问以下链接并下载WebLogic Portal 8.1 SP3

·          WSRP 概述: http://dev2dev./products/wlportal81/articles/wsrp.jsp

·          (下载WebLogic Portal 8.1 SP3 http://commerce./index.jsp


以下场景中SamplePortal是一个主门户,从这里您可以创建到其他WAR文件中portlets的引用。这样就可以将不同WAR文件的portlets导入到SamplePortal中。

1.        创造一个不同的新门户项目。并按“将portlets添加到一个新的项目”中所描述的七个步骤来操作。

2.        启动门户示例域,并登录到以下Administration Portal中:http://localhost:7001/portalAppAdmin .

3.        Portals标签下,点击左边的Library

4.        当树展开时,点击Portlet Producers图标。

5.        producer资源面板出现在右侧后,点击“Browse/Add Producers”标签。

6.        在“Enter Producer to Browse”框中输入:http://localhost:7001/<new portlet war file>/producer?wsdl,点击“ok”。

7.        此时您将看到一列producer的属性,包括可用的portlet。点击“Add Producer”并且填写注册区域。

8.        注册之后,您将处于“ Available Producers ”窗口中。在“ Available Producers”框中,点击“Register”按钮,在对话框中,点击“Save”。

9.        点击您注册的Producer,并从门户中选出需要引用的portlet


这时,点击库目录中的“All Portlets”就可以看到刚刚添加的远端portlet。在Available Portlets 框的Category下拉菜单中还有一个方便的portlet类别,“All Remote Portlets,”。现在您可以将远端portlet加入一个页面中供用户使用。

在此场景中,SamplePortal将扮演一个消费者的角色,而您的其他web应用将成为producer角色。

使Pluto Test Suite PortletsSamplePortal中可用
下面用一个例子来重点说明在多个WAR文件中使用portlets。基本思想是在一个web应用中为其他web应用的WebLogic Portal提供一组可用的portlets
 

在下面的例子中,我们从Apache下载了Pluto test portletsJSR 168 - test suite)。接下来,我们创建一个新的web应用,使用portlet工具来导入WAR文件,最终使用WSRP来使他们在门户web应用中可用。

1.        Apache上下载最新的Pluto test suite portlets(出于方便起见,本文中我们附带了一份拷贝)。

2.        使用 Portlet工具使WAR WebLogic Workshop导入做好准备。



注意,图中.portlet文件已经创建,同时WAR也已做好导入的准备。

3.        执行作为一个门户项目(获得168支持)的WAR文件的导入步骤。在Workshop中从您的应用点击导入选项就可以实现。




编辑portlet.tld文件,指向JSR 168标准的BEA实现(出于方便考虑,本文中我们附带了一个拷贝)

这时,您已经创建了一个新的web应用,并导入了168 portlets。现在让他们可以在其他web应用中使用。这个例子使用了SamplePortal web应用。有两种方式可以将这些portlet带入SamplePortal。您可以在Workshop中使用portlet wizard为新建的web应用创建一个引用,另外,您也可以在管理门户中创建一个引用。

下面的步骤将使用管理门户。确保已有一个门户和创建好的桌面。在这个例子中,可以使用SamplePortal模板生成一个门户“P1”和一个桌面“D1”。

1.        登录到管理门户。

2.        SamplePortal中添加一个新页面,并且命名为Pluto Test

3.        进入库中,选择portlet producers,并添加一个新的producers

4.        输入地址:http://localhost:7001/<new_web_app>/producer?wsdl

5.        执行添加producer并且注册。

6.        返回并选择需要添加的portlet。在这个例子中,我们选择了“Test Portlet #1”,它是Pluto Test suite的一部分。

7.        切换到desktopD1”,并选择添加一个portlet,选择“Test portlet 1”。


当启动桌面时,您将看到一个新的名为“Pluto Test”的页面,在页面中您将看到来自位于另一个单独web应用的Pluto test suite中的“Test Portlet #1”。


注意SamplePortal位于sampleportal web应用中,而Pluto Test Suite Portlets位于我们创建的新Pluto web应用中。

其他需要考虑的事项
一个可能会降低部署时间的因素是使用了门户项目的缩微版本。您可以创建自己的只支持JSR 168而不支持其他服务的项目。与门户内容管理服务、Java页面流和其他非168服务相关的标签都将被删除。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多