apache pluto 实践 DEMO

Java代码 复制代码
  1. 关键字: apache pluto 实践   
  2.            Portlet with Apache Pluto 实践(一)---感受portlet   
  3. 概述   
  4.   
  5.     Apache Pluto 是 JSR-168 和JSR-268的参考实现(pluto 2.0基于JSR-268(Java Portlet Specification V2.0),之前的版本基于JSR-168(Java Portlet Specification V1.0)),是实现了 Portlet API 的 Portlet 容器,充当Portlet 的运行时环境,与 Web 应用服务器的 Servlet 容器的运行时环境支持 Servlet 的情形非常相似。根据Java Portlet Specification,Portlet 容器是Servlet 容器的扩展,并且需要servlet 2.3 以上支持。   
  6.     Apache Pluto 常作为验证portlet的容器,不作为产品生产的容器,目前比较流行的产品级容器有Liferay,eXo,Jetspeed,当然还有老大哥级别的Bea和IBM都有自己的portlet容器产品,有兴趣可以查阅一下相关资料。   
  7.    “吾常整日而思矣,不如须臾之所学” 废话少说,让我们先动手来做一个Demo来感受一下Portlet是为何物。说明一下,Java Portlet Specification v2 (JSR 28620083月份刚出来,所以本文基于Java Portlet Specification v1 (JSR 168),以后在讨论JSR 286的新特性。   
  8.     开始前请准备下列产品:   
  9.     ?JDK 1.5 或者更高版本   
  10.     ?Apache Tomcat 5.5.x或更高版本   
  11.     ?Apache Pluto 1.1.4  
  12.     ?Apache Maven 2.x(可选)   
  13.     ?Eclipse Europa(Eclipse V3.3) for JavaEE Developers或更高   
  14.   
  15. Portlet 运行环境的搭建   
  16.   
  17.      Apache Pluto 官方当前发布的版本为1.4.1,包含以下四个下载选项:   
  18.      ? pluto-current-bundle – 该包提供了一个与Tomcat 5.x绑定的pluto版本,你可以将你的portlet应用直接部署在里面,跟你平常部署一般web应用没有什么差别。   
  19.      ? pluto-current-bin – 包含了pluto lib 包、portal 和 测试应用。   
  20.      ? pluto-current-container-bin – 仅包含pluto容器 lib 包   
  21.      ? pluto-current-src – 包含了pluto 源文件   
  22.   
  23.      1.安装JDK、Maven 2、安装 Tomcat并设定相应的环境变量   
  24.      此步骤不再熬述,具体请查阅相关文档   
  25.      Jdk:http://java.sun.com/   
  26.     Maven2:http://maven.apache.org/   
  27.     Tomcat:http://tomcat.apache.org/   
  28.   
  29.     2.下载安装 Apache Pluto 1.1.4  
  30.     安装方法有三种:第一种是二进制安装,第二种是从源代码安装,第三种是手动配置,我喜欢第三种,不过这里还是一一介绍一下。   
  31.      方法一:二进制安装   
  32.      1.下载pluto-current-bundle,并解压(如,d:\ pluto-1.1.4),得到的目录结构如下:   
  33.   
  34.      其中的PlutoDomain即为容器配置的Portal和测试两个应用war包,当此Tomcat启动时会自动部署。这个如果你看着奇怪,可以看一下:D:\pluto-1.1.4\conf\Catalina\localhost 下的pluto.xml和testsuite.xml就明白了。   
  35.      2.在D:\pluto-1.1.4\bin中执行,startup.bat (Windows) or startup.sh (Unix)。请注意:现在D:\pluto-1.1.4 其实就是个tomcat 5.5, 按此方法安装不需要再下载Tomcat。其默认端口为8080,如果该端口被占用,请更改端口。(在D:\pluto-1.1.4\conf 下的server.xml中修改)。这里假设不更改。   
  36.      3.在浏览器中输入:http://localhost:8080/pluto/portal 即可访问pluto portal.   
  37.     4. 默认设置了两个帐号:   
  38.         User: pluto         password: pluto   
  39.        User: tomcat       password: tomcat   
  40.     安装成功后就可以体验什么是portal了。   
  41.   
  42.      方法二:由源代码构建   
  43.      先觉条件,请确认已经安装并配置好了Maven2,可以打开命令行,输入:   
  44.      C:\Documents and Settings\db2admin>mvn -version   
  45.      Maven version: 2.0.9  
  46.      Java version: 1.6.0_10-beta   
  47.      OS name: "windows 2000" version: "5.0" arch: "x86" Family: "windows"  
  48.      如果能看到这些内容,则说明Maven2已经安装好了。   
  49.   
  50.       1.下载pluto-current-src,并解压(如:D:\pluto-1.1.4),得到的目录结构如下:   
  51.   
  52.       此目录就是pluto的项目模块了,熟悉Maven的话一点困难都没有,本人也是因为刚刚接触,就不在此班门弄斧了。   
  53.       2.编辑 %MAVEN_HOME%\conf 或者~/.m2/settings.xml目录下的settings.xml 文件,增加 <pluginGroups> 元素:   
  54.      <settings>   
  55. ……   
  56. <pluginGroups>   
  57. <pluginGroup>org.apache.pluto</pluginGroup>   
  58. </pluginGroups>   
  59. ……   
  60.       </settings>   
  61.      如果没有做好这一步,执行安装是会失败的。   
  62.       3.在命令行控制台,切换到D:\pluto-1.1.4,并执行如下命令:   
  63.       D:\>cd pluto-1.1.4  
  64.      D:\pluto-1.1.4>mvn install   
  65.      D:\pluto-1.1.4>mvn pluto:install -DinstallDir=D:/Tomcat6.0  
  66.      本机安装的为Tomcat6。0,之前安装的Tomcat5.5也丝毫没有问题,需要注意的是,如果你的服务器路径包含空格的话,需要用引号将服务器路径包含起来,不然空格在控制台中乱码,造成编译失败。如下所示:   
  67.       C:\pluto> mvn pluto:install -DinstallDir="C:\Program Files\Apache Software Foundation\Tomcat 5.5"  
  68.      待构建成功后部署就完成了。   
  69.   
  70.       其实Pluto的容器安装部署没那么麻烦,但是现在Maven大行其势,很多开源软件也基于Maven来构件,有点要冷落Ant的嫌疑。不管Ant 还是 Maven,都大大提高了初学者的门槛。整个容器部署构建过程其实就拷贝了几个包到相应的目录,部署了一个Pluto portal 和一个测试套件。具体我们在手工安装中讲解到底是如何来安装Pluto容器。   
  71.   
  72.       方法三:手工安装   
  73.       手工安装就跟部署一般的web应用程序没有什么差别。   
  74.       在方法二中执行mvn install后,会下载一系列的包含jar的lib包,当然这些包可以在pluto-current-bundle、pluto-current- bin、pluto-current-container-bin中找到。下面具体描述:   
  75.       步骤1,部署容器,拷贝下列文件至(Tomcat 5.5)<TOMCAT_HOME>/shared/lib或者(Tomcat 6.0)<TOMCAT_HOME>/lib   
  76.      ?castor-1.1.1.jar   
  77.      ?pluto-container-1.1.4.jar   
  78.      ?pluto-descriptor-api-1.1.4.jar   
  79.      ?pluto-descriptor-impl-1.1.4.jar   
  80.      ?pluto-taglib-1.1.4.jar   
  81.      ?portlet-api-1.0.jar   
  82.   
  83.      步骤2. 拷贝下列文件至(Tomcat 5.5)<TOMCAT_HOME>/common/endorsed或者(Tomcat 6.0)<TOMCAT_HOME>/endorsed (endorsed目录为新建目录)   
  84.      ?xercesImpl-2.6.2.jar   
  85.      ?xmlParserAPIs-2.6.2.jar   
  86.      这个主要是用来兼容Java 1.4 环境运行Pluto 1.1。   
  87.       步骤3. 从pluto-1.1.4-bundle\pluto-1.1.4\conf\Catalina\localhost   
  88.      或者   
  89.       D:\pluto-1.1.4\pluto-portal\src\main\resources\pluto.xml     
  90.      D:\pluto-1.1.4\ pluto-testsuite\src\main\resources\testsuite.xml   
  91.      中拷贝pluto.xml、testsuite.xml 至<TOMCAT_HOME>/conf/Catalina/localhost目录下。这两个就是Context,熟悉的话可以在<TOMCAT_HOME>\conf\Server.xml (Tomcat 6.0默认没有此目录,需要建立此目录)   
  92.   
  93.       步骤4. 部署pluto-portal.war、pluto-testsuite.war,可以在下列目录找到这两个应用:   
  94.       D:\pluto-1.1.4\pluto-portal\target\pluto-portal.war   
  95.      D:\pluto-1.1.4\pluto-testsuite\target\pluto-testsuite.war 或者   
  96.       pluto-1.1.4-bundle\pluto-1.1.4\PlutoDomain   
  97.      根据pluto.xml、testsuite.xml中的docBase指定的路径将pluto-portal.war、pluto- testsuite.war拷贝到相应的目录,如果pluto.xml、testsuite.xml来自Maven构件的则把pluto- portal.war、pluto-testsuite.war放在<TOMCAT_HOME>/webapps,如果pluto.xml、 testsuite.xml来自   
  98. pluto-1.1.4-bundle\pluto-1.1.4\conf\Catalina\localhost,则放在   
  99. <TOMCAT_HOME>\PlutoDomain目录下。   
  100.   
  101.       说明:为了能够在应用范围使用Pluto的PortletSession 属性,需要修改<TOMCAT_HOME>/conf/server.xml 中默认8080端口的Connector元素,增加属性:emptySessionPath="true",但是如果设为true,所有path的 session cookie将设为/。这对portlet规范的实现非常有用,但是在服务器需要同时提供多个被访问的应用时,会对性能造成很大的影响。如果没有设置,该值为false。另外pluto-current-bundle里面已经做了设置,但是通过Maven构建时并没有设置,需要手动设置。   
  102.   
  103.      步骤5. 配置用户和角色   
  104.      编辑<TOMCAT_HOME>/conf/tomcat-users.xml,增加一个用户和角色。   
  105.      <?xml version="1.0" encoding="utf-8"?>   
  106.     <tomcat-users>   
  107. <role rolename="manager"/>   
  108. <role rolename="pluto"/>   
  109. <role rolename="tomcat"/>   
  110.          <role rolename="role1"/>   
  111.          <user username="tomcat" password="tomcat"  roles="tomcat,pluto,manager"/>   
  112.          <user username="role1" password="tomcat" roles="role1"/>   
  113.          <user username="both" password="tomcat" roles="tomcat,role1"/>   
  114.          <user username="pluto" password="pluto" roles="pluto,manager"/>   
  115.          </tomcat-users>   
  116. 该配置为Pluto 配置了pluto 和 tomcat两个帐号。   
  117. 请不要忘记配置<user username="both" password="tomcat" roles="tomcat,role1"/>   
  118. 到此,Portlet的运行环境搭建完成   
  119.   
  120.      3.验证安装   
  121.      启动 Tomcat 服务器。浏览器访问http://localhost:8080/pluto/portal   
  122.   
  123.      输入用户名和密码(如: pluto/pluto),进入 Pluto 的 Portal 页面:   
  124.   
  125.      大家一定要注意编辑D:\Tomcat6.0\conf\ tomcat-users.xml添加角色和用户,而且<TOMCAT_HOME>/conf/Catalina/localhost 下的pluto.xml、 testsuite.xml 的应用路径配置:docBase="../PlutoDomain/pluto-portal-1.1.4.war" 则表示pluto-portal-1.1.4.war 应该放置在D:\Tomcat6.0\PlutoDomain目录下。   
  126.       
  127.      能成功登陆,说明Portlet环境已经配置成功了。   
  128.   
  129.   
  130.   
  131.   
  132.   
  133.      建立开发环境   
  134.      IDE其实可以自己选择,这里使用Eclipse 3.4 for J2EE Developers, 2008626号刚出炉的,来体验一下。   
  135.      为项目开发配置动态web项目的运行时(Runtime Server)服务器配置。   
  136.      启动 Eclipse, 打开菜单项目 Window -> Preferences,在Preferences 对话框,选择 Server-> Runtime Environments 项   
  137.   
  138.   
  139.      点击 Add 按钮,将 Tomcat 6 添加为运行时,   
  140.   
  141.      设置Tomcat 6的安装路径,其他不需要更改   
  142.   
  143.      单击 Finish 结束配置,单击 OK 关闭 Preferences 对话框。   
  144.   
  145.      在 Eclipse 的 Servers 视图中单击鼠标右键,选择 New -> Server。   
  146.   
  147.     弹出的窗口中选择目标运行服务器 Apache Tomcat 6.0 Server,运行时呈现 Apache Tomcat V6.0,如点击Finish   
  148.   
  149.     在 Servers 视图中双击刚刚新建的 Tomcat 服务器,打开服务器配置页面。   
  150.   
  151.      在 Server Locations 中选择 Use Tomcat Installation, DeployPath 选择 D:\Tomcat6.0\webapps,如所示。至此开发环境设置完毕。   
  152.   
  153.      Portlet 程序示例   
  154.      1.在eclipse中新创建一个 Dynamic Web Project,   
  155.   
  156.   
  157.      设置项目属性,项目名称 HelloPortal, 目标运行时 Apache Tomcat V6.0,保留默认设置,点击 Finish   
  158.   
  159.      2.创建一个HelloWorldPortlet类,该类继承javax.portlet.GenericPortlet      
  160. 代码如下:   
  161. // HelloWorldPortlet.java   
  162. package com.ccsee.portal.portlet;   
  163.   
  164. import java.io.IOException;   
  165.   
  166. import javax.portlet.GenericPortlet;   
  167. import javax.portlet.PortletException;   
  168. import javax.portlet.RenderRequest;   
  169. import javax.portlet.RenderResponse;   
  170.   
  171. public class HelloWorldPortlet extends GenericPortlet {   
  172.   
  173. @Override  
  174. protected void doView(RenderRequest request, RenderResponse response)   
  175. throws PortletException, IOException {   
  176. response.setContentType("text/html");   
  177. response.getWriter().println("Hello, This is the portal world!");   
  178. }   
  179.   
  180. }   
  181.   
  182.     3. 在WEB-INF目录下新建portlet.xml 配置文件   
  183. <?xml version="1.0" encoding="UTF-8"?>   
  184. <portlet-app   
  185.     xmlns="http://java.sun.com/xml/ns/portlet/portlet-app_1_0.xsd"  
  186.     version="1.0"  
  187.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
  188.     xsi:schemaLocation="http://java.sun.com/xml/ns/portlet/portlet-app_1_0.xsd   
  189.                         http://java.sun.com/xml/ns/portlet/portlet-app_1_0.xsd">          
  190. <portlet>   
  191. <description>Hello World Portlet Description</description>   
  192. <portlet-name>HelloWorldPortlet</portlet-name>   
  193. <display-name>Hello World</display-name>   
  194.   
  195. <portlet-class>com.ccsee.portal.portlet.HelloWorldPortlet</portlet-class>   
  196. <expiration-cache>-1</expiration-cache>   
  197. <supports>   
  198. <mime-type>text/html</mime-type>   
  199. <portlet-mode>VIEW</portlet-mode>   
  200. </supports>   
  201. <supported-locale>en</supported-locale>   
  202.   
  203. <portlet-info>   
  204. <title>Hello World Portlet</title>   
  205. <short-title>Hello Portlet</short-title>   
  206. <keywords>Hello World</keywords>   
  207. </portlet-info>   
  208. </portlet>              
  209. </portlet-app>   
  210.   
  211.      4.配置web.xml   
  212. <?xml version="1.0" encoding="UTF-8"?>   
  213. <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">   
  214. <display-name>HelloPortal</display-name>   
  215.   <servlet>   
  216. <servlet-name>HelloWorldPortlet</servlet-name>   
  217.   <servlet-class>org.apache.pluto.core.PortletServlet</servlet-class>   
  218.   <init-param>   
  219.   <param-name>portlet-name</param-name>   
  220. <param-value>HelloWorldPortlet</param-value>   
  221.   </init-param>   
  222.   <load-on-startup>1</load-on-startup>   
  223. </servlet>   
  224.   
  225. <servlet-mapping>   
  226. <servlet-name>HelloWorldPortlet</servlet-name>   
  227. <url-pattern>/PlutoInvoker/HelloWorldPortlet</url-pattern>   
  228. </servlet-mapping>   
  229. </web-app>   
  230.   
  231.      5. 在 META-INF 下新建 context.xml 文件,内容如下:   
  232. <Context path="/helloportal" docBase="HelloPortal" crossContext="true" />   
  233. 示列部署   
  234. 在 Eclipse 的 Servers 视图中,右键单击 Tomcat 服务器,点击 Add and Remove Projects,在弹出的对话框中将 HelloPortal 项目添加到右侧栏目中,点击 Finish 确认。   
  235.   
  236.   
  237.   
  238.       在 Servers 视图中启动服务器,Console 视图中输出 Tomcat 启动信息。   
  239.       浏览器中输入相应 url 访问 pluto 的 portal 页面,登录,点击 Pluto Admin 导航栏   
  240.   
  241.       使用该工具新建一个 page,如 "HelloPortal"。导航栏中马上新增一项 "HelloPortal ",点击进入该页面可以见到目前该页面没有内容。   
  242.       选择 HelloPortal应用程序中的 HelloWorldPortlet,选择上一步新建的页面,点击 Add Portlet 按钮,将 HelloWorldPortlet布局到 "HelloPortal" 页面。   
  243.      进入 "HelloPortal" 页面,该页面新增了一个 Portlet,并打印出“Hello, This is the portal world!”。   
  244.   
  245.      本示列为一个极小的HelloWorld应用,旨在感性的认识Portlet的开发。示例中涉及的文件,仅仅四个:   
  246.      1.HelloWorldPortlet.java   
  247.     2.porlet.xml   
  248.     3.web.xml   
  249.     4.helloportal.xml   
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值