`
zybing
  • 浏览: 457120 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

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 资源服务的主要特性。对照此示例,

分享到:
评论

相关推荐

    ADALM-PLUTO-master_pluto实现载波同步_adalmpluto_pluto实现qpsk_pluto_

    通过实践这些例子,用户可以深入理解载波同步在实际通信系统中的作用,以及如何在ADALM-PLUTO这样的SDR平台上实现这一关键功能。同时,这也有助于掌握数字信号处理的基本原理,为无线通信领域的进一步研究打下坚实...

    Portlet 简单例子demo pluto

    Portlet技术是Web应用程序开发中的一个重要概念,尤其在企业级应用中广泛使用,它...通过这个“Portlet简单例子demo pluto”,你可以动手实践,深入了解Portlet的开发过程,从而更好地掌握这一重要的Web应用开发技术。

    Pluto 简单的实例包含数据库连接和源码

    【标题】"Pluto 简单的实例包含数据库连接和源码" 是一个关于学习 Pluto 框架基础操作的资源包,其中涉及到的关键知识点包括 Pluto 框架的基本使用、数据库连接以及源码分析。 Pluto 框架是一个用于开发 Web 应用...

    解决pluto的两个中文问题

    Pluto通常指的是Apache Pluto,这是一个Portlet容器,用于实现JSR 168和JSR 286标准,它允许在单一的Web界面中展示多个独立的应用模块,即portlet。中文问题可能涉及到字符编码、显示乱码或中文搜索功能的不正常。 ...

    pluto-2.0.0-bundle.zip

    "Pluto"是一个广泛使用的开源项目,其2.0.0版本的软件包"pluto-2.0.0-bundle.zip"包含了该系统的核心组件和相关资源。这个压缩包通常用于开发、部署或者更新一个基于Pluto平台的应用程序。在深入探讨Pluto 2.0.0之前...

    plutosdr-fw-v0.31.zip

    这次提供的"plutosdr-fw-v0.31.zip"是一个固件更新包,版本号为0.31,通常意味着对之前版本的改进和增强。 首先,让我们了解固件更新的重要性。固件是设备内部控制硬件行为的软件,它决定了设备的功能和性能。定期...

    PLUTO SDR ,使用GNU Radio搭建简单FM接收

    PLUTO SDR ,使用GNU Radio搭建简单FM接收

    Pluto-SP-R2017b.zip

    标题中的“Pluto-SP-R2017b.zip”表明这是一个针对Matlab 2017b版本的Pluto硬件支持包的离线安装文件。这个安装包是为了那些无法或者不便通过网络进行在线更新和安装的用户设计的。Pluto通常指的是Pluto SDR...

    Pluto故障代码.pdf

    Pluto 故障代码解析 本文档主要介绍了 Pluto 故障代码的解释和故障诊断方法。该文档提供了 Pluto 故障代码的详细信息,包括Inputs、Outputs 和 LEDs 的解释、故障代码列表、故障原因和解决方法等。 1.8 Pluto 故障...

    leantrx-20180211_plutosdr_zip_

    PlutoSDR 是 SDR 设备的一个例子,可以接收和发送宽频带的无线电信号。 2. **PlutoSDR**:Analog Devices 的 PlutoSDR 设备通常用于教育、研究和业余无线电爱好者,因为它们提供了高性能但成本较低的 SDR 解决方案...

    QPSK_matlab图像pluto通信原理_

    利用MATLAB平台实现图片点对点收发,采用QPSK调制解调

    Windows Drivers for PlutoSDR.pdf

    - 完成后,应该会看到一个确认消息,表明 PlutoSDR 设备已准备好使用。 #### 四、卸载驱动程序 - 在控制面板中找到“程序和功能”选项。 - 找到已安装的 PlutoSDR-M2k-USB-Win-Drivers 包,并双击或右键单击选择...

    pluto-1.0.1-rc1.zip

    "pluto-1.0.1-rc1.zip" 是一个与portlet开发相关的压缩包文件,其中包含了Portlet容器 Pluto 的一个版本。Pluto是Apache软件基金会下的一个项目,它是Java Portlet规范(JSR 168和JSR 286)的参考实现,用于运行和...

    tomcat 配置 Pluto 步骤

    在本文中,我们将详细介绍如何手动配置Tomcat与Pluto,以搭建一个Portlet容器。Pluto是Apache基金会Portlet容器的实现,它遵循JSR 168和JSR 286规范,用于测试和运行Portlets。下面是配置Tomcat Pluto的详细步骤: ...

    基于pluto的通信系统-发送接收端matlab代码-点对点通信

    西电通院/电院 通信原理 大作业

    Pluto_QAM.rar_matlab pluto_pluto_pluto matlab

    标题中的"Pluto_QAM.rar_matlab pluto_pluto_pluto matlab"暗示了这是一个与Pluto编码相关的Matlab模拟项目。Pluto编码是一种用于数字通信的纠错编码技术,特别是在卫星通信和深空探测中有着广泛的应用。QAM...

    Pluto Firmware Updates.pdf

    详细介绍如何升级PLUTOSDR的固件。

    maven+pluto2.0搭建portlet环境

    编辑 `${TOMCAT_HOME}\conf\tomcat-users.xml` 文件,添加角色 `pluto`,并在该角色下新增一个用户: ```xml &lt;role rolename="role1"/&gt; &lt;role rolename="pluto"/&gt; &lt;user password="pluto" roles="pluto,...

    pluto-2.0.3-bundle

    "pluto-2.0.3"是这个压缩包内的主要文件,这通常表示它是Pluto项目的第2.0.3个版本。在软件版本控制中,"2.0.3"表明这是一个主版本2,次版本0,修订版3的迭代。这意味着它是在2.0.0和2.1.0之间的更新,修复了可能...

Global site tag (gtag.js) - Google Analytics