`
samjavaeye
  • 浏览: 193856 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

在IBM Portal6.1上自动发布主题、外观和Portlet

阅读更多

主题、外观和Portlet开发好以后,一般都是从Portal的界面上,由管理员进行安装。但如果需要制作安装程序自动安装,就需要另一种方式了,这里使用IBM自带的xmlaccess工具来完成任务。该工具位于<profile_root>/PortalServer/bin中,例如C:\IBM\WebSphere\wp_profile\PortalServer\bin。另外在<portal_server_root>/bin下也能找到一个xmlaccess工具,具体差别我没有比较过。

 

完整的命令行示例:

xmlaccess.bat -in DeployPortlet.xml -user wpsadmin -password 123123 -out Out_ DeployPortlet.xml -url http://localhost:10040/wps/config

 

xmlaccess支持很多命令行参数,在命令提示符环境下,直接执行xmlaccess可以显示详细的帮助信息,这里我只介绍用到的几个:
-in:指定输入xml文件路径。需要让xmlaccess做的事情,在命令行里没法写,太多了,因此需要保存在一个专门的xml文件中,具体格式后面详细介绍。
-user:用户名。
-password:密码。
-out:输出文件名,如果没有,则xmlaccess会将结果直接输出到控制台。这个选项对于“发布”这种一次性工作没有多大用处,但对于后面要说到的页面迁移,则是必不可少的。
-url:门户网站配置 URL,缺省为http://localhost/wps/config

 

知道怎么运行xmlaccess之后,接下来就是要准备输入文件了。需要说明的是,xmlaccess只是负责将配置信息写入到Portal中,因此在运行xmlaccess之前,先要将主题和外观拷贝到对应目录中,并将Portlet的war文件拷贝到服务器上。

 

完整的输入文件示例:

<?xml version="1.0" encoding="UTF-8"?>
<request 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:noNamespaceSchemaLocation="PortalConfig_6.1.0.xsd"
    type="update" create-oids="true">
    <portal action="locate">
        <skin action="locate" domain="rel" objectid="noSkin" uniquename="wps.skin.noSkin"/>
        <skin action="locate" domain="rel" objectid="thinSkin" uniquename="wps.skin.thinSkin"/>
        <skin action="update" active="true" objectid="EKP_Html_skin" uniquename="landray.portal.skin.EKP_Html" resourceroot="EKP_Html">
            <localedata locale="zh">
                <title>EKP_夏</title>
                <description>EKP蓝色风格皮肤</description>
            </localedata>
        </skin>
        <theme action="update" active="true" defaultskinref="EKP_Html_skin" uniquename="landray.portal.theme.Portal_EKP_Blue" resourceroot="Portal_EKP_Blue">
            <localedata locale="zh">
                <title>EKP_夏</title>
            </localedata>
            <allowed-skin skin="EKP_Html_skin" update="set"/>
            <allowed-skin skin="noSkin" update="set"/>
            <allowed-skin skin="thinSkin" update="set"/>
        </theme>
        <web-app action="update" active="true" uid="com.landray.portal.portlet.navigation.EKPNavigationTreePortlet.webmod">
           <url>file:///$server_root$/installableApps/EKP_navigation_tree.war</url>
           <servlet action="update" active="true" objectid="EKPNavigationTreeServlet" referenceid="EKPNavigationTreePortlet.servlet"/>
           <portlet-app action="update" active="true" uid="com.landray.portal.portlet.navigation.EKPNavigationTreePortlet">
              <portlet action="update" active="true" objectid="EKPNavigationTreePortlet" name="EKPNavigationTreePortlet" servletref="EKPNavigationTreeServlet"/>
            </portlet-app>
        </web-app>
    </portal>
</request>

 

  • action属性,常用的取值有两个:locate和update。locate表示做一个定义,有点像写程序的时候定义变量;update表示更新,如果Portal中不存在该项目,则是新建,否则就是更新。
  • objectid属性,类似于变量名称,用于上下文的引用。
  • uniquename属性,这个要跟Portal中的“唯一名称”对应。Portal中每个页面、主题、外观、Portlet等,都可以指定一个唯一名称。

 

下面具体来看相关配置项

 

<skin action="locate" domain="rel" objectid="noSkin" uniquename="wps.skin.noSkin"/>

表明定义了一个外观对象,该外观对象通过唯一名称"wps.skin.noSkin"与Portal中IBM自带的“无外表”外观对应。因为下文中我们要发布的主题,需要使用到此外观,因此要在前面先定义好,然后通过objectid进行引用。

 

 skin节点定义了我们自己开发的一个外观。

<skin action="update" active="true" objectid="EKP_Html_skin" uniquename="landray.portal.skin.EKP_Html" resourceroot="EKP_Html">
    <localedata locale="zh">
        <title>EKP_夏</title>
        <description>EKP蓝色风格皮肤</description>
    </localedata>
</skin>
  • action="update" —— 要进行更新操作;
  • active="true" —— 设置为活动状态;
  • objectid="EKP_Html_skin" —— 定义名称为"EKP_Html_skin";
  • uniquename="landray.portal.skin.EKP_Html" —— 定义全局唯一名称为"landray.portal.skin.EKP_Html";
  • resourceroot="EKP_Html" —— 在外观目录下的目录名称。(外观目录为<profile_root>\installedApps\<节点名>\wps.ear\wps.war\skins\html例如:C:\IBM\WebSphere\wp_profile\installedApps\sam6a\wps.ear\wps.war\skins\html);
  • localedata —— 指定不同区域下该外观的名称和描述,这里只指定了中国地区。

theme节点定义了我们自己开发的一个主题。

<theme action="update" active="true" defaultskinref="EKP_Html_skin" uniquename="landray.portal.theme.Portal_EKP_Blue" resourceroot="Portal_EKP_Blue">
    <localedata locale="zh">
        <title>EKP_夏</title>
    </localedata>
    <allowed-skin skin="EKP_Html_skin" update="set"/>
    <allowed-skin skin="noSkin" update="set"/>
    <allowed-skin skin="thinSkin" update="set"/>
</theme>
  • action="update" —— 要进行更新操作;
  • active="true" —— 设置为活动状态;
  • defaultskinref="EKP_Html_skin" —— 该主题的缺省外观指定为"EKP_Html_skin",注意这里外观的名称与上面那个外观的objectid属性值一致,相当于引用变量时变量名要一致;
  • uniquename="landray.portal.theme.Portal_EKP_Blue" —— 指定唯一名称;
  • resourceroot="Portal_EKP_Blue" —— 指定该主题所在目录名称。(主题目录为<profile_root>\installedApps\<节点名>\wps.ear\wps.war\themes\html例如:C:\IBM\WebSphere\wp_profile\installedApps\sam6a\wps.ear\wps.war\themes\html);
  • localedata —— 指定不同区域下该外观的名称和描述,这里只指定了中国地区。
  • allowed-skin —— 指定在该主题中允许使用的外观,skin属性值与相应外观的objectid属性值一致。

web-app节点定义一个Portlet。这个节点的配置就比较容易出错了,一定要小心。

<web-app action="update" active="true" uid="com.landray.portal.portlet.navigation.EKPNavigationTreePortlet.webmod">
   <url>file:///$server_root$/installableApps/EKP_navigation_tree.war</url>
   <servlet action="update" active="true" objectid="EKPNavigationTreeServlet" referenceid="EKPNavigationTreePortlet.servlet"/>
   <portlet-app action="update" active="true" uid="com.landray.portal.portlet.navigation.EKPNavigationTreePortlet">
      <portlet action="update" active="true" objectid="EKPNavigationTreePortlet" name="EKPNavigationTreePortlet" servletref="EKPNavigationTreeServlet"/>
    </portlet-app>
</web-app>
  • action="update" —— 要进行更新操作;
  • active="true" —— 设置为活动状态;
  • uid —— 必须与下面portlet-app子节点的uid属性值匹配,规则是在portlet-app子节点的uid属性值后面加上“.webmod”,注意大小写!
  • url子节点定义了该Portlet的war文件位置,一般我们应该将其拷贝到<portal_server_root>/installableApps中,作为统一的Portlet安装程序备份。建议在打包Portlet时,给文件名加上固定的模块或者公司名简称前缀,便于查找。
  • servlet子节点值得注意的地方是referenceid属性,该属性值必须与portlet子节点的name属性匹配,规则是在portlet子节点的name属性值后面加上“.servlet”。
  • portlet-app子节点的uid属性值,必须与该Portlet的war包中的portlet.xml文件中portlet-app节点的id值相同。如果在portlet.xml文件中没有指定portlet-app节点的id值,则必须与war包的文件名一致。这也是一个经常出错的地方。
  • portlet子节点,name属性值必须与portlet.xml文件中portlet-name节点值相同;servletref属性值则要与上面的servlet节点的objectid属性值相同。

另外还要注意输入文件本身的编码,如果包含中文,最好使用系统缺省编码,否则可能会出现安装上去的主题和外观的名称是乱码的情况。

 

正常执行xmlaccess,成功的话,可以在输出文件或控制台中看到如下执行成功提示:
<status element="all" result="ok"/>

 

分享到:
评论

相关推荐

    IBM portal6.1迁移oracle详细文档

    IBM Portal 6.1版本可能运行在各种数据库平台上,但迁移至Oracle数据库可能是因为Oracle在性能、扩展性或管理特性方面具有优势。 迁移过程通常涉及以下几个步骤: 1. **规划与准备**:在开始迁移前,需要对现有的...

    ibm websphere portal 6.1 培训资料(一)

    3. **Portlet容器**:理解Portlet容器的工作原理,它是如何管理portlet实例,提供portlet上下文,以及如何处理portlet请求和响应。 4. **portlet部署**:学习portlet部署的不同方式,如使用WAR文件或通过WebSphere ...

    ibm websphere portal 6.1 培训资料(二)

    虽然部分商标信息未能在此列出,但需注意,IBM WebSphere Portal通常会与多个IBM的其他产品和服务结合使用,如DB2数据库、Lotus软件系列和Tivoli管理工具,这些产品间的协同作用是构建强大企业门户的关键。

    WebSphere Portal 6.1 Portlet隐藏 和 动态Title实现

    在IT领域,WebSphere Portal是一款由IBM开发的企业级门户服务器,它允许组织创建、管理和集成各种Web内容和服务,提供统一的访问入口。本篇将详细探讨"WebSphere Portal 6.1"中Portlet的隐藏及动态Title实现,这对于...

    IBM WebSphere Portal 6.1项目实施与开发、配置技巧集锦

    在 Windows 平台上安装或升级 IBM WebSphere Portal 6.1.0.3 时遇到问题。 **1.4.2 解决方案** 1. **检查系统要求**:确保目标系统满足 IBM WebSphere Portal 6.1.0.3 的最低系统要求。 2. **清理临时文件**:...

    IBM培训文档-WebSphere Portal V6.1

    综上所述,IBM WebSphere Portal V6.1是一款集成了Web 2.0理念的先进门户平台,它通过portlet技术和IBM WebSphere的强大支持,为企业提供了一种高效、灵活的方式来整合和管理其信息化资源,从而推动业务发展和创新。...

    WebSphere Portal Express v6.1 安裝練習

    安装完成后,WebSphere Application Server 6.1、WebSphere Portal 6.1 和 DB2 9.1.4等组件都会位于这个目录下。Profile目录则位于`E:\IBM\WebSphere`下。 #### 2.6 检测计算机名称与FQDN - 安装程序会自动检测当前...

    IBM Portal Server 的单点登陆

    - **实现原理**:通过 Portlet 服务的方式,允许 WebSphere Portal 调用 TAM 中的凭证库服务,从而实现在门户环境中对用户凭证的统一管理和使用。 - **组织结构**:凭证库 Portlet 服务通常由一个或多个 Portlet ...

    portlet之间互相通信

    - IBM Portal提供了Portlet Eventing服务,支持portlet的事件发布和订阅。portlet可以通过`PortletPublishingService`和`PortletSubscriptionService`接口进行事件操作。 - 利用portlet上下文(`PortletContext`)...

    WebSphere Portal V6.1新特性及Mashup介绍

    WebSphere Portal V6.1是IBM推出的一款企业级门户解决方案的新版本,该版本引入了多项增强功能和新特性,旨在提升用户体验,简化部署流程,并增强了对Web 2.0技术的支持。以下是对这些特性的详细解释: 1. **架构和...

    Developing themes and skins in IBM WebSphere Portal 6.0.X

    本文档旨在全面介绍在 IBM WebSphere Portal 6.0.X 中开发主题与皮肤的技术细节,涵盖从基础知识到高级功能的各个方面。通过阅读本文档,读者将能够理解新版主题与皮肤中新增的功能,如主题扩展和主题策略等,并了解...

    portal迁移

    WPS(WebSphere Portlet Server)是IBM Portal的基础组件,此文档可能是关于WebSphere Portlet Server 6.1的安装指南,对于理解门户环境的搭建和迁移过程至关重要。安装完成后,需要进行必要的配置以支持新环境下的...

    门户解决方案V6.1

    4. **新标准支持**:WebSphere Portal V6.1增加了对JSR286和WSRP2.0等标准的支持,这使得开发者能够构建更符合行业标准的portlet和门户应用。 5. **其他新特性**:除了上述改进,还包括对TeamSpaces的启用增强、对...

    WebSphere_Portal_V61安装手册

    【WebSphere_Portal_V61安装手册】是一个详细的指导文档,旨在帮助用户成功地在他们的系统上安装和配置IBM的WebSphere Portal V6.1版本。WebSphere Portal是一款企业级的门户平台,它允许组织创建、管理和提供个性化...

    Liferay_6.1开发学习

    Liferay 6.1 是在2011年发布的版本,引入了一系列重要的新特性,如文件同步功能,增强了文档库的管理,优化了用户界面,提供了表单和工作流设计器,以及对移动设备的更好支持。这一版本的发布进一步提升了Liferay的...

    portal 开发指南

    Portlet支持个性化设置,允许用户根据自己的喜好定制Portlet的行为和外观。 ##### 5.4 Request请求处理 Portlet通过处理不同的请求类型(如RenderRequest、ActionRequest等)来响应用户的操作。 #### 六、...

Global site tag (gtag.js) - Google Analytics