1、JSR286PortletJSR 286 Portlet配置首先介绍 JSR 286 Portlet实现 Apache Pluto 2.0.3 平台的构建过程,然后通过在Apache Pluto 2.0平台上开发和部署JSR286Portlet应用程序。准备工作 Apache Pluto 2.0 是 JSR 286 的参考实现,是实现了 Portlet 2.0 API 的 Portlet 容器,充当 Portlet 的运行时环境,与 web 应用服务器的 Servlet 容器的运行时环境支持 Servlet 的情形非常相似。Pluto 2.0 目前支持的 JSR 286 Portlet 新特性
2、有资源服务、事件、Portlet 过滤器、共享呈现参数、 Portlet 窗口。 1:构建JSR286Portlet运行环境Apache Pluto 2.0.3 1:安装jdk1.6.0_10并设置环境变量 2:安装apache-maven-3.0.4 下载并解压,设定Maven安装路径为$M2_HOME. 将$ M2_HOME bin目录加到系统的PATH环境变量中。 3:安装tomcat 6 下载并解压,设定安装路径为$TOMCAT_HOME 4:获取pluto-2.0.3-source-release.zip源码 5:使用Maven构建Pluto 编译$M2_HOMEconf目录下的se
3、tting.xml文件,增加元素: Setting.xml文件: org.apache.portals.pluto Pom.xml文件: 2.1.9 pluto2.0.3 的相关文件就被安装到 tomcat 相应目录下: D:cd pluto2 D:pluto2mvn install D:pluto2mvn Pluto:install DinstallDir=$TOMCAT_HOME 如果tomcat安装路径中存在空格,则需要用双引号把路径引起来: D:pluto2mvn Pluto:install DinstallDir=” C:apache-tomcat-6.0.30” 在网上下载comm
4、ons-logging-api-1.1.jar文件,拷贝到$TOMCAT_HOMElib目标下。 修改tomcat下的conftomcat-users.xml文件,添加角色pluto,并在该角色下新增一个用户: 验证安装:运行$TOMCAT_HOMEbinstartup.bat,启动tomcat服务器。浏览器访问URL http:/localhost:8080/pluto/portal,如图:Pluto登录界面输入添加到pluto角色的用户名和密嘛都为pluto,进入pluto的portal页面:Pluto portal界面至此,JSR286Portlet运行环境Apache Pluto 2.
5、0.3搭建成功。2:使用eclipse 建立开发环境下载eclipse-jee-helios-SR2-win32.zip,注意要下载 Eclipse IDE for Java EE Developers。启动eclipse,对eclipse进行配置:执行菜单项目Wndow-Preferences,打开Preferences对话框,选择Server-Runtime Environments点击Add按钮,将Tomcat6添加为运行时单击Finish结束配置,单击OK关闭Preferences对话框。在eclipse的Server视图中点击鼠标右键,选择New-Server。如图:新建服务器在弹出
6、的窗口中选择目标运行服务器Apache Tomcat 6.0 Server,运行时呈现Apache Tomcat v6.0,点击Finish。选择目标运行服务器在Servers视图中双击刚刚新建的Tomcat服务器,打开服务器配置页面,如图:Tomcat服务器配置页面在 Server Locations 中选择 Use Tomcat Installation,Deploy Path选择 $TOMCAT_HOMEwebapps,如图 9 所示。至此开发环境设置完毕必须设定 Deploy Path 为 Tomcat 安装目录下的 webapps 目录,否则使用 Eclipse 启动 Tomcat
7、后,Pluto 不能加载进来。Tomcat服务器配置创建JSR286Portlet应用1:使用eclipse创建PortletWeb项目新建项目,项目类型选择Web-Dynamic Web Project,如图:接下来,设置项目属性,项目名称jsr286portlets,目标运行时Apache Tomcat V6.0,保留默认设置,点击Finish,如图:生成项目结构如图:在META-INF下新建context.xml文件,内容如下:该文件为tomcat的特有配置文件,根据Pluto的要求,该Web工程的上下文应该可以被其它JavaEE程序访问,所以crossContext参数设置为true在
8、WEB-INF下新建portlet.xml文件,内容如下:2:资源服务新增Java类TestPortlet,实现了javax.portlet.Portlet和javax.portlet.ResourceServingPortlet接口TestPortlet.javapackage com.ibm.samples.jsr286.portlets;import java.io.IOException;import javax.portlet.ActionRequest;import javax.portlet.ActionResponse;import javax.portlet.Portlet;
9、import javax.portlet.PortletConfig;import javax.portlet.PortletException;import javax.portlet.PortletRequestDispatcher;import javax.portlet.RenderRequest;import javax.portlet.RenderResponse;import javax.portlet.ResourceRequest;import javax.portlet.ResourceResponse;import javax.portlet.ResourceServin
10、gPortlet;import javax.servlet.http.HttpServlet;public class TestPortlet extends HttpServlet implements Portlet, ResourceServingPortlet private static final long serialVersionUID = 1L; private PortletConfig portletConfig; public void init(PortletConfig portletConfig) throws PortletException this.port
11、letConfig = portletConfig; public void destroy() public void processAction(ActionRequest actionRequest, ActionResponse actionResponse) throws PortletException, IOException public void render(RenderRequest renderRequest, RenderResponse renderResponse) throws PortletException, IOException PortletReque
12、stDispatcher portletRequestDispatcher = portletConfig .getPortletContext().getRequestDispatcher( /WEB-INF/jsp/TestPortletView.jsp); portletRequestDispatcher.include(renderRequest, renderResponse); public void serveResource(ResourceRequest resourceRequest, ResourceResponse resourceResponse) throws Po
13、rtletException, IOException PortletRequestDispatcher portletRequestDispatcher = portletConfig .getPortletContext().getRequestDispatcher( /WEB-INF/jsp/TestPortletResource.jsp); portletRequestDispatcher.include(resourceRequest, resourceResponse); 在WEB-INF目录下新建jsp目录,在jsp目录下新建portlet呈现阶段所显示的jsp文件TestPor
14、tletView.jsp。% taglib prefix=portlet uri= Test portlet page. a href=Click me to request Resource URL 在jsp目录下新建portlet资源服务所请求的jsp文件TestPortletResource.jsp%taglib prefix=portlet uri= Test portlet resource page. 编译portlet.xml文件,为TestPortlet增加一个portlet定义片段,该TestPortlet仅支持View模式 TestPortlet TestPortlet c
15、om.ibm.samples.jsr286.portlets.TestPortlet text/html VIEW TestPortlet 编译web.xml文件,增加Pluto所需的servlet定义及映射。 TestPortlet org.apache.pluto.container.driver.PortletServlet portlet-name TestPortlet 1 TestPortlet /PlutoInvoker/TestPortlet 在eclipse的Servers视图中,右键单击Tomcat服务器,点击Add and Remove Projects,在弹出的对话框中
16、将jsr286portlets项目添加到右测栏目中,点击Finish确认,如图:在Servers视图中启动服务器,Console视图中输出Tomcat启动信息。浏览器中输入相应url访问pluto的portal页面,登录,点击Pluto Admin导航栏,如图:使用该工具新建一个页面,如 Test JSR 286 Portlet Page。导航栏中马上新增一项 Test JSR 286 Portlet Page,点击进入该页面可以见到目前该页面没有内容。选择 jsr286portlets 应用程序中的 Portlet TestPortlet,选择上一步新建的页面,点击 Add Portlet
17、按钮,将 TestPortlet 布局到 Test JSR 286 Portlet Page页面。进入Test JSR 286 Portlet Page页面,该页面新增了一个 Portlet TestPortlet,点击超链接,进入所请求的资源页面3事件简单事件新建 Java 类 TestSimpleEventSenderPortlet, 在该 Portlet 类的 processAction 方法中,发送一个简单事件,事件内容为一个字符串。TestSimpleEventSenderPortlet.java 文件package com.ibm.samples.jsr286.portlets;i
18、mport java.io.IOException;import javax.portlet.ActionRequest;import javax.portlet.ActionResponse;import javax.portlet.Portlet;import javax.portlet.PortletConfig;import javax.portlet.PortletException;import javax.portlet.PortletRequestDispatcher;import javax.portlet.RenderRequest;import javax.portlet
19、.RenderResponse;public class TestSimpleEventSenderPortlet implements Portlet private PortletConfig portletConfig; public void processAction(ActionRequest actionRequest, ActionResponse actionResponse) throws PortletException, IOException actionResponse.setEvent(simple-event, simple-event is sent by +
20、 portletConfig.getPortletName(); public void render(RenderRequest renderRequest, RenderResponse renderResponse) throws PortletException, IOException PortletRequestDispatcher portletRequestDispatcher = portletConfig .getPortletContext().getRequestDispatcher( /WEB-INF/jsp/TestSimpleEventSenderPortletV
21、iew.jsp); portletRequestDispatcher.include(renderRequest, renderResponse); Override public void destroy() / TODO Auto-generated method stub Override public void init(PortletConfig portletConfig) throws PortletException / TODO Auto-generated method stub this.portletConfig = portletConfig; 在 jsp 目录下新建
22、 jsp 文件 TestSimpleEventSenderPortletView.jsp%taglib prefix=portlet uri=form action= Test simple event sender portlet page. 新建 Java 类 TestSimpleEventReceiverPortlet, 在该 Portlet 实现了 javax.portlet.EventPortlet 接口,可以响应事件。TestSimpleEventReceiverPortlet.java 文件package com.ibm.samples.jsr286.portlets;impor
23、t java.io.IOException;import javax.portlet.ActionRequest;import javax.portlet.ActionResponse;import javax.portlet.Event;import javax.portlet.EventPortlet;import javax.portlet.EventRequest;import javax.portlet.EventResponse;import javax.portlet.Portlet;import javax.portlet.PortletConfig;import javax.portlet.PortletException;import javax.portlet.PortletRequestDispatcher;import javax.portlet.RenderRequest;import javax.portlet.RenderResponse;public class TestSimpleEventReceiverPortlet implements Portlet, EventPortlet private PortletConfig portletConfig; pu
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1