使用JDeveloper开发Portlet(JSR 168)

三月 2, 2010 in Oracle 融合中间件

概述

通常来说,对于Portal的开发都避免不了大量的Portlet的开发,因此,在WebCenter中也提供了多种Portlet,常用的有:

  • JSR 168
  • Oracle PDK

这两种Portlet相辅相成,为WebCenter提供了强大的UI展现能力,在JDeveloper 11g中,可以方便地实现Portlet的开发,本文主要描述在JDeveloper 11g中开发JSR 168标准Portlet,以及如何在WebCenter Application应用该Portlet。

基本步骤

1、创建Portlet Application,开发Portlet
2、发布Portlet到WebLogic
3、创建WebCenter Application,在其中注册上步中发布成功的Portlet
4、使用Portlet

实现

1、创建Portlet Application,开发Portlet

1)打开JDeveloper,创建Portlet Producer Application

2) 创建Portlet Producer Application时,会一起创建出对应的Portlet Project,在Wizard中可以看到,该Project的“Project Technologies”中对应的Technologies已经被自动添加到选择项中,点击Next到Finish

3)我们将要开发的Portlet用于展现HR Schema中的Jobs表数据,因此需要为该项目创建数据库连接

4)基于HR Schema中的Jobs表创建EO,VO,并创建AM添加该VO的实例到该AM的Data Model中

5) 在该Portlet Project中创建Portlets,选择“Standards-based Java Portlet(JSR 168)”,填入相应的Portlet信息,需要注意的是在生成的页面中,我们暂时仅需要数据展示页面,因此在3/8步骤中,仅保留“view”页面,并 选择生成ADF页面(.jspx),保证其他选项默认,点击Next到Finish即可

6)打开刚创建成功的view.jspx页面,从“Data Control”面板中拖动Jobs表对应的VO实例到页面,选择以“Read-Only Table”的形式展现

2、发布Portlet到WebLogic

1)为该Project创建Deployment Profile,以WAR形式发布即可

2)在WAR Profile中指定Java EE Web Context Root为howtoportletapp或其他名称,使发布成功的Portlet的URL更清晰

3)创建Deployment Profile完成后,在部署之前首先确保JDeveloper 11g集成的WebLogic Domain已经启动,可通过如图方式查看

4)在Portlet Project中点击右键,选择Deploy,如图进行部署

5)根据提示选择发布到应用服务器中(Deploy to Application Server),选择Application Server为JDeveloper 11g集成的WebLogic Server,点击Next至Finish

6)在部署开始时,JDeveloper会监查到即将发布到WebLogic中的为JSR 168 Porlet,会提示是否以WSRP service进行发布,选择Yes,点击OK后继续

7)查看JDeveloper控制台的Deployment面板,得到如下结果

[01:13:36 PM] Running dependency analysis...
[01:13:36 PM] Building...
[01:13:44 PM] Deploying profile...
[01:13:45 PM] Wrote Web Application Module to /home/eleven/Work/ADF/workspace/howto/howtoportletapp/Portlets/deploy/howtoportletapp.war
[01:13:45 PM] Wrote Enterprise Application Module to /home/eleven/Work/ADF/workspace/howto/howtoportletapp/Portlets/deploy/howtoportletapp.ear
[01:13:48 PM] Deploying Application...
[01:13:52 PM] [Deployer:149192]Operation 'deploy' on application 'howtoportletapp' is in progress on 'DefaultServer'
[01:14:00 PM] [Deployer:149194]Operation 'deploy' on application 'howtoportletapp' has succeeded on 'DefaultServer'
[01:14:00 PM] Application Deployed Successfully.
[01:14:00 PM] The following URL context root(s) were defined and can be used as a starting point to test your application:
[01:14:00 PM] http://192.168.136.1:7101/howtoportletapp
[01:14:00 PM] Elapsed time for deployment:  29 seconds
[01:14:00 PM] ----  Deployment finished.  ----

8)访问上面给出的URL,若显示如下内容,则说明部署成功

9)从WSDL URLS中选择WSRP v2 WSDL连接,得到XML格式内容,记录该URL
http://192.168.136.1:7101/howtoportletapp/portlets/wsrp2?WSDL

3、创建WebCenter Application,在其中注册发布成功的Portlet

1)使用向导创建WebCenter Application

2)创建WebCenter Application完成后,在Application Resources面板中的Connection处点击右键,新建Connection,选择“WSRP Producer”

3)在“WSDL URL”中填入上步最后记录的URL地址,点击Next,分别填入不同步骤中的对应参数信息

4)创建成功后,在Application Resources面板中就可以查看刚注册成功的Portlet,即PortletDemo

4、使用Portlet

1)在WebCenter Application中创建新页面,进行适当布局,将Portlet拖动到该页面,产生如图效果

2)布局完成后的页面结构如图

3)保存应用,运行该页面,得到如图结果,调用Portlet成功

详细代码请查看:howtojsrportlet.rar

无相关文章.

5 responses to 使用JDeveloper开发Portlet(JSR 168)

  1. 11.xu 很强,好东西共享!

  2. 原来不注册登录看不到图。。

  3. 呵呵,吐血是夸张了点,就是太多图了,要一张一张截好再粘上来,比较费事…

  4. 这个文章写到吐血,占个沙发先…

    • 感谢11.xu的辛苦劳动,共享Oracle ADF和WebCenter的东西,怎么会写到吐血呢?

Leave a reply

You must be logged in to post a comment.