曲线实现对IBM Portal portlet的DEBUG

http://hi.baidu.com/5shuang/blog/item/5f7a9d548a7c74193b2935ea.html
   IBM Portal在5版本时安装还可以安装一个调试环境在开发机上用RAD来调试portlet,但是到了V6的时候就没有这个东西了,只能开发机上安装一个portal,资源占用量很大。而我还没有RAD的许可,平时开发都是使用eclipse来完成,所以开始琢磨怎么能在eclipse上开发portlet并且还能debug,最后部署到WebSphere Portal上还能正常用。想来想去,最后想到了我刚刚开始接触portal时用过的jetspeet2,顿时心里有了希望。
     JetSpeet是严格遵守JSR168的,并且他本身只是一个web应用,运行在tomcat上,而eclipse对tomcat debug就简单多了,所以只要让我们写的portlet能部署在jetspeet上,就可以实现用eclipse对我们的portlet来debug了。
    

     安装步骤:
     1.下载jetspeet2(http://portals.apache.org/jetspeed-2/download.html),推荐选择Jetspeed-2.1.3-demo-installer.jar来安装,这里自带了tomcat。
     2.点击下载的jar文件进行安装,安装的时候需要选择jetspeet使用的数据库,我这里使用的是mysql,如果需要使用其他数据库也可以,配置数据库和使用jdbc链接数据库一样,需要填写数据库的链接船、类串等信息。
     3.安装完后,启动jetspeet安装包自带的tomcat(startup)。
     4.使用http://127.0.0.1:8080看看jetspeet是不是正常启动了?默认用户名admin/admin

     开发步骤:
     重点啊~~
     1.建立一个标准的JSR168(其他的struts portlet等也可以)portlet工程。
     2.修改功能的web.xml,加入下面配置:
      ----------------------------------------------
       <servlet>
        <servlet-name>JetspeedContainer</servlet-name>
        <display-name>Jetspeed Container</display-name>
        <description>
            MVC Servlet for Jetspeed Portlet Applications
        </description>
        <servlet-class>
            org.apache.jetspeed.container.JetspeedContainerServlet
        </servlet-class>
        <init-param>
            <param-name>contextName</param-name>
            <param-value>Consolidation</param-value>
        </init-param>
        <load-on-startup>100</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>JetspeedContainer</servlet-name>
        <url-pattern>/container/*</url-pattern>
    </servlet-mapping>
      ----------------------------------------------
      3.确保在你的portlet.xml中的标题、显示名等显示汉字的部分都使用资源文件来配置,资源文件中的汉字使用utf-8码(该方法在websphere portal上好用,因为用rad开发的人都知道,rad生成的portlet功能就是这样配置中文名的),例如下面:
     ----------------------portlet.xml-------------------------
    <portlet id="EquipmentMain">
        <portlet-name>SBTJ</portlet-name>
        <display-name>SBTJ</display-name>
        <portlet-class>cn.web.EquipmentMain</portlet-class>
        <supports>
            <mime-type>text/html</mime-type>
            <portlet-mode>VIEW</portlet-mode>
        </supports>
        <supported-locale>zh</supported-locale>
        <resource-bundle>cn.web.nl.equipmentMain</resource-bundle>
    </portlet>
     -----------------------------------------------
    
     ----------------------equipmentMain_zh.properties-------------------------
    javax.portlet.short-title=\u8BBE\u5907\u7EDF\u8BA1
    javax.portlet.title=\u8BBE\u5907\u7EDF\u8BA1
    javax.portlet.keywords=\u8BBE\u5907\u7EDF\u8BA1
   -----------------------------------------------------------------------
   ----------------------equipmentMain.properties-------------------------
    javax.portlet.short-title=SBTJ
    javax.portlet.title=SBTJ
    javax.portlet.keywords=SBTJ
    -----------------------------------------------------------------------
   
    4.将你的web开发插件的server指向jetspeet的安装目录(其实就是一个tomcat目录),我用的是myeclipse,设置如下:                5.然后你就可以像开发普通的web程序一样在jetspeet上面debug调试了~~ 嘿嘿
      6.需要部署在websphere portal上时,只要将web.xml中添加的servlet配置删除就可以了。其实在jetspeet上部署一个portlet是不用添加这个servlet配置的,当你部署一个portlet后,jetspeet会自动在你的portlet war中加上这个,对开发人员来说这个是透明的,但是由于我们需要动态的部署我们的portlet,所以手动加上了。通过jetspeet添加的这个servlet,你也可以理解jetspeet的实现原理了,不多说了。
     


      对了,jetspeet页面上添加portlet方法这里就不介绍了,很多资料都有的。

猜你喜欢

转载自housheng33.iteye.com/blog/1338894