Pluto2.0.1第一个例子

apache上2.0的开发文档很少,看了前人写的2.0的开发示例,以及pluto2.0.1自带的例子,完成了第一个开发例子。


相关参考资料:

IBM上的例子,以及 pluto2.0.1自带的pluto-testsuite;


第一步:

  首先配置Eclipse中的tomcat:

   注意点: 在server窗口配置中, Server Locations 中选择 Use Tomcat Installation,Deploy Path选择 ${TOMCAT_HOME}\webapps,必须设定 Deploy Path 为 Tomcat 安装目录下的 webapps 目录,否则使用 Eclipse 启动 Tomcat 后,Pluto 不能加载进来。(详见IBM例子的tomcat配置说明)。


第二步:创建portlet应用:

1. 首先在Eclipse中,建立一个Dynamic Web Project

    -- 注意创建Project时候,“dynamic web module version”:选用的versin,必须要和自己配置的tomcat版本相适应。自己在开发的时候,为了调整tomcat,有时候用了tomcat5.5,可是工程配置不进来,原因就是在创建工程的时候选择了2.5版本,而tomcat5.5只支持2.4的版本


2. 在 META-INF 下新建 context.xml 文件

 

<Context crossContext="true" />

 

 该文件为 Tomcat 的特有配置文件,根据 Pluto 的要求,该 Web 工程的上下文应该可以被其它 JavaEE 程序访问,所以 crossContext 参数设置为 true。


3. 在 WEB-INF 下新建 portlet.xml 文件

 

<?xml version="1.0" encoding="UTF-8"?>
<portlet-app
    xmlns="http://java.sun.com/xml/ns/portlet/portlet-app_2_0.xsd"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/portlet/portlet-app_2_0.xsd
            http://java.sun.com/xml/ns/portlet/portlet-app_2_0.xsd"
    version="2.0">
   <!-- 在该位置填写portlet描述内容,在后面开发好的portlet要加入进来 -->
</portlet-app>
 

 

4. 新增Java类:

   在IBM的说明中,是实现了 javax.portlet.Portlet 和 javax.portlet.ResourceServingPortlet 接口,在新下载的pluto test-suite中,是继承了GenericPortlet

 

import javax.portlet.GenericPortlet;

public class TestPortlet extends GenericPortlet {
 ...

    public void serveResource(ResourceRequest request, ResourceResponse response)
            throws PortletException, IOException {

        getPortletContext().getRequestDispatcher("自己的页面").include(request, response);
        
   }


    @Override    
    public void doView(RenderRequest request, RenderResponse response)
    throws PortletException, IOException {

        PortletRequestDispatcher dispatcher = getPortletContext().getRequestDispatcher(显示的页面);
  
        dispatcher.include(request, response);
    
   }

}
 

 

在这个类中的实现也和IBM的说明不同

 

5. 增加2个页面:

    portlet 呈现阶段所显示的 jsp 文件 TestPortletView.jsp

 

<%@ page language="java" contentType="text/html; charset=UTF-8"    pageEncoding="UTF-8"%>
<%@taglib prefix="portlet" uri="http://java.sun.com/portlet_2_0"%>
<portlet:defineObjects />
<table>
    <tr>
        <td><h1>Test portlet page.</h1></td>
    </tr>
    <tr>
        <td><a href="<portlet:resourceURL/>">Click me to request Resource URL</a></td>
    </tr>
</table>
 

 

 portlet 资源服务所请求的 jsp 文件 TestPortletResource.jsp

 

<%@ page language="java" contentType="text/html; charset=UTF-8"    pageEncoding="UTF-8"%>
<%@taglib prefix="portlet" uri="http://java.sun.com/portlet_2_0"%>
<portlet:defineObjects />
<table>
    <tr>
        <td><h1>Test portlet resource page.</h1></td>
    </tr>
</table>
 

 

6.编辑 portlet.xml 文件, 为 TestPortlet 增加一个 portlet 定义片断,该 TestPortlet 仅支持 View 模式

 

<portlet>
    <portlet-name>TestPortlet</portlet-name>
    <display-name>TestPortlet</display-name>
    <portlet-class>com.ibm.samples.jsr286.portlets.TestPortlet</portlet-class>
    <supports>
        <mime-type>text/html</mime-type>
        <portlet-mode>VIEW</portlet-mode>
    </supports>
    <portlet-info>
        <title>TestPortlet</title>
    </portlet-info>
</portlet>

 

 

7. 编辑 web.xml 文件,增加 Pluto 所需的 servlet 定义及映射。读者请注意,该定义为 Pluto 2.0 Portlet 容器所需,不属于 JSR 286 标准的要求。

 

<servlet>
    <servlet-name>TestPortlet</servlet-name>
    <servlet-class>
        <!-- IBM例子中的类: org.apache.pluto.core.PortletServlet -->
        <!-- 在pluto2.0.1 test-suite中的类:-->
        org.apache.pluto.container.driver.PortletServlet
    </servlet-class>
    <init-param>
        <param-name>portlet-name</param-name>
        <param-value>TestPortlet</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
    <servlet-name>TestPortlet</servlet-name>
    <url-pattern>/PlutoInvoker/TestPortlet</url-pattern>
</servlet-mapping>
 

8. 将工程加到server中,运行server,余下的部分,看一下IBM示例中的说明操作即可

 

 

在 Eclipse 的 Servers 视图中,右键单击 Tomcat 服务器,点击 Add and Remove Projects,在弹出的对话框中将 jsr286portlets 项目添加到右侧栏目中,点击 Finish 确认,如图13:


图 13. 部署项目到服务器 
部署项目到服务器 

在 Servers 视图中启动服务器,Console 视图中输出 Tomcat 启动信息。

浏览器中输入相应 url 访问 pluto 的 portal 页面,登录,点击 Pluto Admin 导航栏,如图14:


图 14. Pluto 管理界面 
Pluto 管理界面 

使用该工具新建一个页面,如 "Test JSR 286 Portlet Page"。导航栏中马上新增一项 "Test JSR 286 Portlet Page",点击进入该页面可以见到目前该页面没有内容。

选择 jsr286portlets 应用程序中的 Portlet TestPortlet,选择上一步新建的页面,点击 Add Portlet 按钮,将 TestPortlet 布局到 "Test JSR 286 Portlet Page"页面。如图 15:


图 15. 布局 Portlet 到 Portal 页面 
布局 Portlet 到 Portal 页面 


进入"Test JSR 286 Portlet Page"页面,该页面新增了一个 Portlet TestPortlet,如图16:


图 16. TestPortlet 界面 
TestPortlet 界面 

注意到上图 portlet 的标题显示为 null, 这是由于 pluto 2.0 目前处于开发阶段,存在一些 bug,读者可不必理会。

点击超链接,进入所请求的资源页面,如图 17:


图 17. TestPortlet 资源界面 
TestPortlet 资源界面 

观察此页面,发现此页面只显示了 TestPortletResource.jsp 的内容,未经过 Portal 容器的修饰, 和直接请求一个 Servlet 或者 JSP 页面的效果是一样的。这就是 JSR 286 Portlet 资源服务的主要特性。对照此示例,

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值