主题、外观和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 Portal 6.1版本可能运行在各种数据库平台上,但迁移至Oracle数据库可能是因为Oracle在性能、扩展性或管理特性方面具有优势。 迁移过程通常涉及以下几个步骤: 1. **规划与准备**:在开始迁移前,需要对现有的...
3. **Portlet容器**:理解Portlet容器的工作原理,它是如何管理portlet实例,提供portlet上下文,以及如何处理portlet请求和响应。 4. **portlet部署**:学习portlet部署的不同方式,如使用WAR文件或通过WebSphere ...
虽然部分商标信息未能在此列出,但需注意,IBM WebSphere Portal通常会与多个IBM的其他产品和服务结合使用,如DB2数据库、Lotus软件系列和Tivoli管理工具,这些产品间的协同作用是构建强大企业门户的关键。
在IT领域,WebSphere Portal是一款由IBM开发的企业级门户服务器,它允许组织创建、管理和集成各种Web内容和服务,提供统一的访问入口。本篇将详细探讨"WebSphere Portal 6.1"中Portlet的隐藏及动态Title实现,这对于...
在 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是一款集成了Web 2.0理念的先进门户平台,它通过portlet技术和IBM WebSphere的强大支持,为企业提供了一种高效、灵活的方式来整合和管理其信息化资源,从而推动业务发展和创新。...
安装完成后,WebSphere Application Server 6.1、WebSphere Portal 6.1 和 DB2 9.1.4等组件都会位于这个目录下。Profile目录则位于`E:\IBM\WebSphere`下。 #### 2.6 检测计算机名称与FQDN - 安装程序会自动检测当前...
- **实现原理**:通过 Portlet 服务的方式,允许 WebSphere Portal 调用 TAM 中的凭证库服务,从而实现在门户环境中对用户凭证的统一管理和使用。 - **组织结构**:凭证库 Portlet 服务通常由一个或多个 Portlet ...
- IBM Portal提供了Portlet Eventing服务,支持portlet的事件发布和订阅。portlet可以通过`PortletPublishingService`和`PortletSubscriptionService`接口进行事件操作。 - 利用portlet上下文(`PortletContext`)...
WebSphere Portal V6.1是IBM推出的一款企业级门户解决方案的新版本,该版本引入了多项增强功能和新特性,旨在提升用户体验,简化部署流程,并增强了对Web 2.0技术的支持。以下是对这些特性的详细解释: 1. **架构和...
本文档旨在全面介绍在 IBM WebSphere Portal 6.0.X 中开发主题与皮肤的技术细节,涵盖从基础知识到高级功能的各个方面。通过阅读本文档,读者将能够理解新版主题与皮肤中新增的功能,如主题扩展和主题策略等,并了解...
WPS(WebSphere Portlet Server)是IBM Portal的基础组件,此文档可能是关于WebSphere Portlet Server 6.1的安装指南,对于理解门户环境的搭建和迁移过程至关重要。安装完成后,需要进行必要的配置以支持新环境下的...
4. **新标准支持**:WebSphere Portal V6.1增加了对JSR286和WSRP2.0等标准的支持,这使得开发者能够构建更符合行业标准的portlet和门户应用。 5. **其他新特性**:除了上述改进,还包括对TeamSpaces的启用增强、对...
【WebSphere_Portal_V61安装手册】是一个详细的指导文档,旨在帮助用户成功地在他们的系统上安装和配置IBM的WebSphere Portal V6.1版本。WebSphere Portal是一款企业级的门户平台,它允许组织创建、管理和提供个性化...
Liferay 6.1 是在2011年发布的版本,引入了一系列重要的新特性,如文件同步功能,增强了文档库的管理,优化了用户界面,提供了表单和工作流设计器,以及对移动设备的更好支持。这一版本的发布进一步提升了Liferay的...
Portlet支持个性化设置,允许用户根据自己的喜好定制Portlet的行为和外观。 ##### 5.4 Request请求处理 Portlet通过处理不同的请求类型(如RenderRequest、ActionRequest等)来响应用户的操作。 #### 六、...