`
peterwanghao
  • 浏览: 128412 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Portlet应用开发实例

 
阅读更多
目的:
开发一个符合JSR-168标准的Portlet应用,将其部署到Jetspeed2上。熟悉Portlet应用的开发过程和了解Jetspeed2对Portlet应用的支持情况。
背景资料:
JSR-168标准:由Java Community Process(JCP)于2003年10月7日发布的Portlet Specification 1.0最终版本。定义了Portlet应用的标准接口。获得业界的广泛支持。
内容:
1、Portlet应用代码
本文中的介绍的Portlet应用是由IBM developerworks提供的一个简单Hello World示例。包括了doView方法显示一个jsp页面。使用Portlet中的processAction方法处理jsp中From表单提交的数据,并把得到的数据放到一个Java Bean中,该Java Bean又被放到PortletSession中供jsp文件调用。具体说明和源码下载可参见:
2、编辑打包
在编辑时需要两个标准类库:portlet-api-1.0.jar和pluto-1.0.1.jar。
注意:在打包时不要将这两个类库包含进去。因为在Tomcat/shared/lib里已经有了,不然就会报Cannot create Portlet instance错误。
使用JDK的jar命令把项目文件打包成web archive 文件。
3、发布
将打包生成的HelloWorld.war文件拷贝到/jetspeed/WEB-INF/deploy目录下即可。系统会自动部署到Portal中。
4、调用
在页面编辑状态下,点击新增Portlet会出现“Portlet选择器”。里面会新增一个“HelloWorld portlet”应用。选中后确定就可将其添加到页面中。
<shapetype id="_x0000_t75" stroked="f" filled="f" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t" o:spt="75" coordsize="21600,21600"><stroke joinstyle="miter"></stroke><formulas><f eqn="if lineDrawn pixelLineWidth 0"></f><f eqn="sum @0 1 0"></f><f eqn="sum 0 0 @1"></f><f eqn="prod @2 1 2"></f><f eqn="prod @3 21600 pixelWidth"></f><f eqn="prod @3 21600 pixelHeight"></f><f eqn="sum @0 0 1"></f><f eqn="prod @6 1 2"></f><f eqn="prod @7 21600 pixelWidth"></f><f eqn="sum @8 21600 0"></f><f eqn="prod @7 21600 pixelHeight"></f><f eqn="sum @10 21600 0"></f></formulas><path o:connecttype="rect" gradientshapeok="t" o:extrusionok="f"></path><lock aspectratio="t" v:ext="edit"></lock></shapetype><shape id="_x0000_i1025" style="WIDTH: 414.75pt; HEIGHT: 348pt" type="#_x0000_t75"><imagedata o:title="䘦Ŗ푼h" src="file:///C:/DOCUME~1/s/LOCALS~1/Temp/msohtml1/01/clip_image001.png"></imagedata></shape>
除此之外还有个更简单的办法可以显示portlet。在/jetspeed/WEB-INF/pages目录下的default-page.psml文件中增加一个fragment定义。
<fragment id="dp-19" type="portlet" name="HelloWorld::HelloWorldPortlet">
<property name="row" value="6"/>
<property name="column" value="0"/>
</fragment>
其中:
id 为任意项
name 为${portlet.application.id}和${portlet.name}的组合。
${portlet.application.id}是实际的war文件名;${portlet.name}为在portlet.xml中定义的<portlet-name>。
row ,column为页面中的位置。
5、错误及解决方法
将应用部署到页面后发现不能正常显示,报Portlet is Not Available错误。
经过对日志分析,原来jetspeed2不支持PropertyManager容器服务。在代码里使用了renderRequest.getProperty("wps.markup")获得这个初始化参数的值。
修改程序通过初始化来获得参数的值。
private static String defaultMarkupSource = "";
/**
* Initialize portlet configuration.
*/
public void init(PortletConfig config) throws PortletException
{
super.init(config);
defaultMarkupSource = config.getInitParameter("wps.markup");
}
private static String getJspFilePath(RenderRequest request, String jspFile)
{
//String markup = request.getProperty("wps.markup");
String markup = defaultMarkupSource;
if (markup == null)
{
markup = getMarkup(request.getResponseContentType());
}
return JSP_FOLDER + markup + "/" + jspFile + "." +
getJspExtension(markup);
}
重新编译部署,应用即可正常显示。
总结:
Jetspeed2.0支持JSR-168标准,Portlet应用可方便地部署到Jetspeed2.0上,操作非常便捷。应用可正常运行。不足之处就是不支持Property Manager服务,造成一些Portlet应用的移植困难。
参考资料:
杨江,《Hello World,一个简单的JSR 168 portlet》,
分享到:
评论

相关推荐

    使用spring mvc portlet 3.0开发IBM WebSphere Portlet应用

    在IBM WebSphere Portal环境中部署portlet时,你需要在portal服务器上配置portlet应用,并在portlet实例中设置属性。部署完成后,你可以在portal页面上添加并测试portlet。 在实际开发过程中,可能还需要处理...

    Spring Portlet MVC的实例 eclispe project

    Spring Portlet MVC是Spring框架在portlet开发中的应用,它提供了一种用于构建portlet应用程序的模型-视图-控制器(MVC)架构。Eclipse是一款广泛使用的Java集成开发环境(IDE),在这里,我们有一个名为"Spring ...

    liferay portlet 开发实例

    在IT领域,特别是企业级应用开发中,Liferay作为一个强大的企业门户平台,提供了丰富的功能和服务,其中Liferay Portlet的开发是构建定制化企业应用的关键技术之一。本文将基于提供的文件信息,深入解析Liferay ...

    基于webwork+spring+hibernate的portlet开发实例

    在现代Web应用开发中,基于MVC(Model-View-Controller)架构的框架组合是常见的选择,例如WebWork、Spring和Hibernate。...对于希望从事Web应用开发或者有志于提升现有portlet应用的人来说,这是一个宝贵的资源。

    portlet之开发详解(中文)

    WebSphere是IBM提供的一个企业级门户解决方案,而Apache Pluto是Jakarta Portal的参考实现,二者都提供了一个良好的环境供开发和测试Portlet应用。 ### Portlet独有概念 Portlet有很多独有概念,如Portlet URL,...

    基于 Struts 2 构建 WebSphere Portal 上的 Portlet 应用

    在 WebSphere Portal 上构建 Portlet 应用时,Struts 2 可以为开发者提供一个结构化的开发环境,使应用程序更加灵活和易于管理。下面将详细介绍如何基于 Struts 2 构建 WebSphere Portal 上的 Portlet 应用。 1. **...

    portlet开发指南

    ### Portlet开发指南知识点概述 #### 一、Portlet简介 **什么是Portal?** Portal是一种Web应用程序,它为用户提供了一个集中的入口点来访问各种不同的应用程序和服务。Portal通常包括多种功能,如新闻、天气预报、...

    IBM portlet开发指南

    在IBM WebSphere Portal环境下搭建开发环境,以及在Apache Pluto Portal环境下搭建开发环境,是开发Portlet应用的先决条件。快速入门部分可能涉及了基础的配置和测试步骤。 #### Portlet概念 Portlet定义了Portal...

    portlet 开发

    Portlet开发是构建企业级Web应用程序的一种方法,特别是在Java平台上,它被广泛应用于构建可重用、可组合的Web组件。Portlet技术允许开发者创建独立的功能模块,这些模块可以集成到更大的Web门户中,为用户提供个性...

    Portlet实例代码

    Portlet是一种特殊的Web组件,主要用于门户(portal)应用中,它可以嵌入到门户页面上,提供个性化、交互式的...通过学习这个示例,开发者可以更好地理解Portlet的工作原理和开发流程,为构建自己的portlet应用打下基础。

    portlet源码,portlet Filter

    而`javax`目录可能包含了portlet API的相关类库,这些都是开发portlet应用所必需的。 总的来说,portlet源码的学习涉及到portlet的生命周期管理、过滤器和拦截器的使用,以及portlet与门户服务器的交互方式。理解并...

    portlet开发

    在IT行业中,portlet开发是构建企业级Web应用程序的重要部分,特别是在使用IBM ...IBM的教程和源码资源为学习者提供了宝贵的实践机会,有助于他们掌握portlet开发的技能,从而在企业级Web应用开发中发挥关键作用。

    workflow portlet实例

    在Web开发领域,portlet是一种可重用的UI组件,它能够集成到门户应用程序中,提供特定的功能或服务。JSR168(Java Portlet API)是Java Community Process发布的一个标准,定义了portlet如何与门户服务器交互,以...

    Liferay Portlet 开发文档

    在开发Portlet的实际过程中,文档给出了如何创建一个图书馆管理系统(Library Management System)的实例,包括创建新的Liferay插件项目,部署“library-portlet”到服务器,以及将Portlet添加到页面的步骤。...

    spring-webmvc-portlet-3.1.1.RELEASE.jar.zip

    总结,Spring Web MVC Portlet为portlet开发提供了一套成熟的解决方案,通过它,开发者可以利用Spring的强大功能,轻松构建出功能丰富的portlet应用。理解和掌握Spring Web MVC Portlet,对于提升portlet开发效率和...

    Portlet 入门实例

    Portlet技术是Web应用程序开发中的一个重要概念,尤其在企业级门户构建中被广泛采用。..."Portlet入门实例"是初学者进入这个领域的良好起点,通过学习和实践,可以逐步掌握portlet开发的核心技术和应用。

    portlet资料

    标签 "工具" 则可能意味着资料中提到了用于portlet开发的工具或框架,比如Liferay Portal、IBM WebSphere Portal等,这些工具能帮助开发者更高效地构建portlet应用。 压缩包内的文件 "JeeCMS网上文档集合.pdf" 提示...

Global site tag (gtag.js) - Google Analytics