websphere portal迁移问题

迁移定制的资源

取决于先前版本的 IBM® WebSphere® Portal 中有哪些定制资源,某些迁移步骤是可选的。您只需要迁移与您的环境相关的资源。

请选择以下相关的定制资源进行迁移:

迁移主题

当您将主题从 IBM® WebSphere® Portal V5.x 迁移时,利用当前版本的新功能,请记住这些准则和差异。

在 WebSphere Portal V5.x 中开发的主题与 WebSphere Portal V6.0 兼容,并且无需代码更改即可编译和呈现它们。为了能在 WebSphere Portal V6.0 中正常使用 WebSphere Portal V5.x 主题,应将它们应用到 WebSphere Portal V5.x 中为其设计的相同页面,并使用专门为主题设计的相同外表。

一般准则

请按照以下准则,将主题从  WebSphere Portal V5.x 迁移到  WebSphere Portal V6.0:
  • 应该将迁移的 WebSphere Portal V5.x 主题应用到 WebSphere Portal V5.x 中为它们设计的相同页面。
  • WebSphere Portal V5.x 主题标识为“管理”或“非管理”主题。页面属性 portlet 只能让您为管理页面指定管理主题,为非管理页面指定非管理主题。在 WebSphere Portal V6.0 中,因为主题可以在所有页面上使用,所以已取消该限制。请记住,没有对从 WebSphere Portal V5.x 迁移的主题进行编码,因此需要您手动强制将这些主题指定给相应的页面,或者更新主题以支持跨顶层页面的导航。
  • 与已迁移的主题结合使用的外表,应该是 WebSphere Portal V5.x 中与该主题结合使用的同一外表。某些 WebSphere Portal V6.0 外表使用新主题功能(如,上下文菜单),而 WebSphere Portal V5.x 主题不提供这些功能。有关更多信息,请参阅下面的“已迁移的主题中的 WebSphere Portal V6.0 功能”部分。
增加对顶层页面导航的支持

在 WebSphere Portal V5.x 中,主题通常在导航模型树的第二层开始呈现导航。通过主题条幅中显式指向某页面的 URL 来访问第一层节点(主页和管理)。

若使用已迁移的主题,如果在 V6.0 中将  WebSphere Portal V5.x 主题指定给在  WebSphere Portal V5.x 门户网站环境中尚未指定主题的页面,那么该方法会带来问题。例如,将  WebSphere Portal V5.x 管理主题指定给了  WebSphere Portal V6.0 中的“主页”。因为  WebSphere Portal V5.x 管理主题只包含了工具栏中“主页”的链接,所以该主题不提供浏览“管理”的任何方法。若要避免出现这个问题,请遵照下面的准则:
  • 添加 NavigationLoop - 要添加 NavigationLoop,请参阅“实现单层导航”主题。
  • 隐藏导航中不需要的页面 - 在 WebSphere Portal V6.0 中,可使用页面元数据属性来隐藏不希望在顶层导航中出现的顶层页面。以下代码摘录自 WebSphere Portal V6.0 IBM 主题中的 mainMenu.jsp。必须在 <portal-navigation:NavigationLoop> 标记中使用该代码。<% boolean isNodeVisible = true; //default to display it //page metadata value used on top level nodes to hide from main menu if (wpsNavNode instanceof com.ibm.portal.MetaDataProvider) { com.ibm.portal.MetaData iMetaData = ((com.ibm.portal.MetaDataProvider) wpsNavNode).getMetaData(); Object hiddenValue = iMetaData.getValue("com.ibm.portal.Hidden"); isNodeVisible = hiddenValue == null ? true: false; %>
有关该代码示例的更多详细信息,请参阅 IBM 主题中的 mainMenu.jsp。
启用主题中的“整理收藏夹”功能

WebSphere Portal 中的“我的收藏夹”功能让您能为门户网站中的某页面制作书签,以便您可在以后迅速地找到该页面。然后将页面添加到“我的收藏夹”列表中,该列表由“整理收藏夹”功能进行维护。“整理收藏夹”是包含整理收藏夹 portlet 的页面,您可在该页面中对“我的收藏夹”列表中的标签和 URL 执行创建、编辑、激活、排序和删除操作。

当迁移到 V6 之前的主题时,“整理收藏夹”必需的标签也随之迁移。

在 V6.0 中,您可以通过创建自己的定制主题而获得的定制代码来访问“整理收藏夹”功能。有关如何执行此操作的更多信息,请参阅创建您自己的主题主题。

要通过 管理界面在该 V6.0 主题中启用“整理收藏夹”功能,请执行以下操作:
  • 依次单击管理门户网站用户界面管理页面
  • 选择内容根页面标题以选中“内容根”页面。
  • 在“内容根”页面上,单击新建标签
  • 创建我的收藏夹标签。
  • 为所有已认证的用户指定特权用户访问权。
  • 完成操作之后,单击确定
  • 单击门户网站设置,然后单击定制唯一名称
  • 将 wps.My Favorites 指定为刚才创建的“我的收藏夹”标签的唯一名称。
  • 完成操作之后,单击确定
  • 依次单击管理门户网站用户界面管理页面
  • 添加值为“Yes”的“收藏夹”页面参数键。

将“整理收藏夹”视为“内容根”节点下的一个节点。节点在与创建它们的父节点相对的导航层次结构层次中。树的最顶端的节点是内容根。

缺省情况下,没有管理特权的用户只能访问“主页”节点(也位于“内容根”节点的下面)下面的节点。具有管理特权的用户可使用工具栏中的链接来回切换“管理”和“主页”。如果在内容根下直接创建其他节点,除非将这些节点明确地添加到某个主题 JSP,否则不会引用这些节点的链接。

启用已迁移外表中的拖放功能

使用拖放功能,您能快速更改使用外表的单个 portlet 的位置。您也能使用拖放功能将页面上的某定制 portlet 从其当前位置移放到另一个位置。这让您可以快速更改页面上定制 portlet 的排列。

因为该功能是  WebSphere Portal V6.0 中的新增功能,所以使用已迁移的外表时,不能直接访问拖放功能。请按照下面步骤操作,来启用已迁移的外表中的拖放功能:
  1. 将下面的代码添加到靠近 Control.jsp 顶部的位置。<%@ taglib uri="/WEB-INF/tld/dnd.tld" prefix="dnd" %> <dnd:DNDPortletHelper/> <%! private static com.ibm.portal.identification.Identification identification; public void jspInit(){ try{ /* Perform this JNDI lookup once as it hinders performance */ javax.naming.Context ctx = new javax.naming.InitialContext(); identification = (com.ibm.portal.identification.Identification) ctx.lookup( "portal:service/Identification" ); } catch ( javax.naming.NamingException ne ){ // nothing is logged here because if Portal ever enters // this catch statement then severe problems have // occurred and will have already been logged by // errors reported by the lookup. } } %>
  2. 在 Control.jsp 中,将包含 portlet“外表”的容器的表置于“drag”标记之间。同时,将 portlet 标题栏(而不是标题栏中的按钮)置于“dragHandle”标记之间。下面是代码示例:<%-- Modification for Drag and Drop - need to pass the portlet control ID - Cannot use the tag because it is an attribute --%> <% String currentLayoutNodeStr = ""; if (pageContext.getAttribute("currentLayoutNode", pageContext.REQUEST_SCOPE) != null) { LayoutNode currLayoutNode = (LayoutNode)pageContext.getAttribute ("currentLayoutNode", pageContext.REQUEST_SCOPE); currentLayoutNodeStr = identification.serialize(currLayoutNode.getObjectID()); } else { LayoutNode currLayoutNode=(LayoutNode)pageContext.getRequest().getAttribute ("com.ibm.wps.composition.element"); currentLayoutNodeStr=identification.serialize(currLayoutNode.getObjectID()); } %> <dnd:drag namespace="wp" type="portlet_windowID" value="<%=currentLayoutNodeStr%>" includeDragHandle="false" validator="com.ibm.wps.dnd.impl.DNDDragPortletValidator"> ....... BEGIN SKIN MARKUP ....... ....... BEGIN TITLE BAR ....... <dnd:dragHandle>TITLE BAR CONTENT</dnd:dragHandle>TITLEBAR BUTTONS ....... END TITLE BAR ....... ....... PORTLET RENDER ....... ....... END SKIN MARKUP ....... </dnd:drag>
  3. 将 WebSphere Portal V6.0 缺省外表的 UnlayeredContainer-H.jsp 和 UnlayeredContainer-V.jsp 复制到您的外表目录中。如果您已定制了以上任一文件,那么将会把这些定制版本文件的代码/标记合并到这些文件的缺省外表版本中。
纠正已迁移的主题中的“搜索范围”下拉列表显示

WebSphere Portal V6.0 在门户网站主题的“搜索”框左侧添加了一个新的图标。单击该图标,将显示一个用于搜索的选项下拉列表,这些选项包括不同的搜索范围、搜索首选项和搜索帮助。

将 V6 之前版本的主题迁移到 WebSphere Portal V6.0 安装时,您会看到这个新下拉列表的背景是透明的,并且看不清其内容。

要在已迁移的主题中纠正该问题,请迁移主题之后,将下面的代码添加到某个主题的 CSS 文件。可将该代码添加到与主题一起显示的任何 CSS。.main-menu-item, .main-menu-item-selected { background-color: #FFFFFF; }

通过添加该代码,您的主题的背景将变成纯白色的,并且看得出主题内容。您也可以定制适合您的主题颜色方案的代码。

已迁移的主题中的 WebSphere Portal V6.0 功能

WebSphere Portal V6.0 在其主题中添加了新功能,包括 portlet 和人员选用板以及上下文菜单。除非从 WebSphere Portal V6.0 主题中复制相应的代码,否则已迁移的 WebSphere Portal V5.x 主题中不提供这些功能。这需要您开发一个主题,来识别、复制和测试要添加到 WebSphere Portal V5.x 主题的功能。

已知主题迁移问题

缺省主题

产品随附的 WebSphere Portal V6.0 页面被指定为使用缺省主题。这样做可使 WebSphere Portal 轻松地重塑品牌,只需将新主题指定为缺省主题即可。例外情况是显式指定为缺省“IBM”主题的“管理”页面。这样做可避免因疏忽而将出现故障的主题应用到缺省主题,从而导致“管理”页面工作不正常。

在将主题迁移到 WebSphere Portal V6.0 时也会出现该问题。在迁移期间,缺省主题指定转移到 WebSphere Portal V6.0 安装。这会将缺省主题从先前的 WebSphere Portal 发行版应用到产品随附的 WebSphere Portal V6.0 页面。

如果迁移后,新产品随附的页面出现问题,那么将 IBM 主题指定给该页面。如果页面使用 IBM 主题时工作正常,而使用迁移主题时工作不正常,那么可能迁移主题中的标记和 portlet 内容之间存在功能性的不兼容。

这也可能是因为这些页面上的 portlet 依赖于 WebSphere Portal V6.0 中的新功能,而这些功能在以前的版本中不存在。如果发生此情况,那么来自 IBM 主题的文件可能需要复制到迁移主题中。有关可能丢失的任何文件的信息,请参阅门户网站日志。

先前版本中带有左导航菜单的主题。

如果您在 WebSphere Portal 的先前版本中创建了带左导航菜单的主题(例如 V5.1.x 中的 leftNav Administrative 主题),这些主题在当前版本中将不起作用。要使这些主题正常工作,必须将 navigation.expansion.defaultstate 的值改为 true。
注: 用这种方法开发的主题页面旁边没有用来展开节点的“+”标记。如果不将 navigation.expansion.defaultstate 设置为 true,您将无法看到该页面的子节点。

你可能感兴趣的:(websphere)