| Oracle® Fusion Middleware Oracle WebCenter Portal開発者ガイド 11g リリース1 (11.1.1.6.0) B72084-01 |
|
![]() 前 |
![]() 次 |
この付録では、手動でPS2 WebCenterカスタム・アプリケーションをPS5 WebCenter Portal: Frameworkアプリケーションに移行する方法について説明します。
この付録の内容は、次のとおりです。
この付録の手順は、熟考した後、絶対に実行する必要があると判断した場合にかぎり実行することを、強くお薦めします。推奨される移行のベスト・プラクティスは、WebCenter Portal – Frameworkアプリケーション・テンプレートを使用して新しい(PS5) Frameworkアプリケーションを作成し、古いPS2アプリケーションのコンテンツ、構成および論理を新しいFrameworkアプリケーションに手動で移行することです。この推奨プラクティスに従うことができない場合は、この付録で説明する手順に従ってアプリケーションを移行します。
この付録では、WebCenter Portal: Frameworkのファイル構造、コンポーネントおよび構成を、JDeveloperの自動移行機能を使用してPS5に移行された既存のWebCenter PS2アプリケーションに手動で追加する手順について説明していることを理解することが重要です。Oracle WebCenter Portal: Frameworkの機能には、ページ・ナビゲーション、ページ階層などの機能があります。詳細は、第9章「Frameworkアプリケーションの概要」を参照してください。
詳細はこの付録で説明しますが、最初に(JDeveloperのPS5バージョンでPS2アプリケーションを開くことにより) PS5への自動移行を実行する必要があります。それが完了したら、この付録の指示に従って、手動でポータル機能を追加することができます。
この付録で説明する手順はオプションです。PS5 JDeveloperでPS2アプリケーションを開いて自動移行を実行したとしても、この付録で説明する移行手順を実行する必要があるのは、Oracle WebCenter Portal: Framework機能を使用する場合のみです。
WebCenter Portal: Frameworkアプリケーション・テンプレートの詳細およびWebCenter Portal: Frameworkアプリケーションの作成方法の詳細は、第5章「Frameworkおよびポートレット・プロデューサ・アプリケーションの作成」を参照してください。
この付録では、アプリケーションを手動で移行する方法について説明する以外に、PS2カスタム・アプリケーションとPS5 Frameworkアプリケーションの違いを際立たせる構成要素の技術的な詳細について説明します。この付録は、FrameworkアプリケーションとPS2カスタム・アプリケーションの構造の詳細なロードマップまたは詳細分析として読むこともできます。
ポータル固有の機能の詳細は、第9章「Frameworkアプリケーションの概要」を参照してください。ポータルの構造の詳細は、第9.12項「WebCenter Portalファイルの編成方法」を参照してください。
PS2 WebCenterカスタム・アプリケーションからPS5 Frameworkアプリケーションへの手動による移行は、次に示す基本手順に分解できます。
移行の準備
準備作業として、WebCenterおよびJDeveloper PS5ソフトウェアを正しくインストールし、(PS5 WebCenterがインストールされている) JDeveloperのPS5バージョンでPS2アプリケーションを開きます。第H.4項「移行の準備」を参照してください。
構成ファイルの編集
PS5機能を追加するために、複数の構成ファイルを手動で開いて編集する必要があります。第H.5項「構成ファイルの編集」を参照してください。
プロジェクト構成の追加
プロジェクト構成には、適切なJARファイルとテクノロジ・スコープをアプリケーションに追加することが含まれます。第H.6項「プロジェクト構成の変更」を参照してください。
ポータル固有のファイルの作成
手動でFrameworkアプリケーションのディレクトリ構造を作成し、ナビゲーション、レジストリ、ページ階層およびカタログ・ファイルなど、ポータル固有のファイルを配置する必要があります。第H.7項「ポータル固有ファイルの作成」を参照してください。
セキュリティ構成の適用
最後に、ADFセキュリティを構成し、適切なポリシー情報をjazn-data.xmlファイルに設定する必要があります。第H.8項「セキュリティ構成の適用」を参照してください。
この付録でこれ以降に説明する移行手順を実行する前に、次の手順を実行します。
Oracle JDeveloperおよびWebCenter PortalのOracle JDeveloper用拡張機能のPS5バージョンをインストールします。詳細は、第3.2項「WebCenter PortalのOracle JDeveloper用拡張機能のインストール」を参照してください。
PS2アプリケーションをバックアップします。
(WebCenter Portalの拡張機能のPS5バージョンがインストールされたている) JDevで、次の手順を実行してアプリケーションを開きます。
「ファイル」メニューから「開く」を選択します。
「開く」ダイアログで、アプリケーション.jwsファイルにナビゲートし、「OK」をクリックします。
アプリケーションを移行するかどうかを指定するよう要求されたら、「はい」をクリックします。この手順では、PS2テクノロジのアプリケーションを、その構造を変更せずに、PS5テクノロジに移行します。PS2アプリケーションは、PS2の場合と同じように、引き続き機能します。
この章の以降の部分で説明する移行手順を実行します。
この項では、手動で更新する必要がある一連の構成ファイルをリストします。
JDeveloperのアプリケーション・ナビゲータ内の場所:
「PROJECT_NAME」→「アプリケーション・ソース」→「DEFAULT_PACKAGE」→「DataBindings.cpx」
ファイル・システム上の場所:
PROJECT_ROOT/adfmsrc/DEFAULT_PACKAGE/DataBindings.cpx
詳細な説明
次に示す2つの属性が、DataBindings.cpxのルートの<Application>要素に存在する必要があります。これらの属性は動的ページ・マッピングを有効化します。これにより、(たとえばページ階層エディタを使用して)実行時に作成されるページは、ページ定義マッピングがDataBindings.cpxに存在する必要がなくなります。
<Application PageMapClass="oracle.jbo.uicli.mom.DynamicPageMapImpl"
BasePageDefPackageName="pageDefs" ... >
JDeveloperのアプリケーション・ナビゲータ内の場所:
「PROJECT_NAME」→「Webコンテンツ」→「WEB-INF」→「weblogic.xml」
ファイル・システム上の場所:
PROJECT_ROOT/public_html/WEB-INF/weblogic.xml
詳細な説明
次に示すエントリをルートの<weblogic-web-app>要素の子として追加します。この要素は、REST共有ライブラリに参照を追加します。これは、アプリケーションがREST機能を使用できるようにするために必要なライブラリです。
<library-ref>
<library-name>jaxrs-framework-web-lib</library-name>
</library-ref>
JDeveloperのアプリケーション・ナビゲータ内の場所:
「PROJECT_NAME」→「Webコンテンツ」→「WEB-INF」→「faces-config.xml」
ファイル・システム上の場所:
PROJECT_ROOT/public_html/WEB-INF/faces-config.xml
詳細な説明
次に示すエントリをルートの<faces-config>要素の子として追加するか、または必要に応じて既存の要素にマージします。
CustomViewHandlerは、ナビゲーション・モデルで使用されるURL構文を解析します。ナビゲーションのノードを指すURLを受け取り、対応するレンダリング対象のJSPXページを見つけます。
SkinPhaseListenerは、実行時に使用するポータル・リソースとして設計時に作成および登録された任意のスキンを有効化します。
preferenceBeanは、デフォルトのナビゲーション、カタログ、ページ・テンプレート、スキンなど、アプリケーションの一連のデフォルト値を提供します。これらの値はadf-config.xmlで定義され、実行時に「ポータル管理」ページの「プリファレンス」タブで変更できます。
<application>
<default-render-kit-id>oracle.adf.rich</default-render-kit-id>
<view-handler>
oracle.webcenter.portalframework.sitestructure.handler.CustomViewHandler
</view-handler>
</application>
<lifecycle>
<phase-listener>oracle.webcenter.skin.view.SkinPhaseListener</phase-listener>
</lifecycle>
<managed-bean>
<managed-bean-name>preferenceBean</managed-bean-name>
<managed-bean-class>
oracle.webcenter.portalframework.sitestructure.preference.PortalPreferences
</managed-bean-class>
<managed-bean-scope>application</managed-bean-scope>
</managed-bean>
JDeveloperのアプリケーション・ナビゲータ内の場所:
「PROJECT_NAME」→「Webコンテンツ」→「WEB-INF」→「trinidad-config.xml」
ファイル・システム上の場所:
PROJECT_ROOT/public_html/WEB-INF/trinidad-config.xml
詳細な説明
次に示すエントリをルートの<trinidad-config>要素の子として追加して、<skin-family>の既存値を置き換えます。このEL式を使用して、実行時にデフォルト・スキンを変更できます。スキンの値はpreferenceBeanによって渡されます。preferenceBeanは、デフォルトのナビゲーション、カタログ、ページ・テンプレート、スキンなど、アプリケーションの一連のデフォルト値を提供します。
<skin-family>#{preferenceBean.defaultTrinidadSkin}</skin-family>
JDeveloperのアプリケーション・ナビゲータ内の場所:
「PROJECT_NAME」→「Webコンテンツ」→「WEB-INF」→「web.xml」
ファイル・システム上の場所:
PROJECT_ROOT/public_html/WEB-INF/web.xml
詳細な説明
次に示すエントリをルートの<web-app>要素の子として追加します。必要に応じて既存の値を<context-param>の値で置き換える必要があります。
PortalAdminServletは、組込みポータル管理ページにリダイレクトします。この管理ページへのリンクは、http://<server:port>/<context-root>/adminでアクセスできます。
PortalFrameworkContextListenerは、アプリケーションがデプロイ/アンデプロイされる際にそのメモリー参照が正しくクリーンアップされることを保証します。
JerseyWebApplicatonエントリとrestFacesContextエントリは、REST機能を使用できるようにアプリケーションを構成します。
Frameworkアプリケーションの場合、パフォーマンス上の理由でパラメータorg.apache.myfaces.trinidad.DISABLE_CONTENT_COMPRESSIONはデフォルトでfalseに設定され、スタイル・クラス名の圧縮が有効化されます。
Frameworkアプリケーションの場合、パフォーマンス上の理由でパラメータoracle.adf.view.rich.pprNavigation.OPTIONSはデフォルトでonWithForcePPRに設定されます。この設定により、部分ページ・ナビゲーションが有効化されます。
<context-param>
<param-name>org.apache.myfaces.trinidad.DISABLE_CONTENT_COMPRESSION</param-name>
<param-value>false</param-value>
</context-param>
<context-param>
<param-name>oracle.adf.view.rich.pprNavigation.OPTIONS</param-name>
<param-value>onWithForcePPR</param-value>
</context-param>
<listener>
<description>Portal Framework Context Listener</description>
<display-name>PortalFrameworkContextListener</display-name>
<listener-class>
oracle.webcenter.portalframework.sitestructure.internal.view.PortalFrameworkContextListener
</listener-class>
</listener>
<servlet>
<servlet-name>PortalAdminServlet</servlet-name>
<servlet-class>oracle.webcenter.portalwebapp.servlet.PortalAdminServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>PortalAdminServlet</servlet-name>
<url-pattern>/admin</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>JerseyWebApplication</servlet-name>
<servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
<init-param>
<param-name>com.sun.jersey.config.property.packages</param-name>
<param-value>
org.codehaus.jackson.jaxrs;oracle.webcenter.jaxrs;test.controller;oracle.webcenter.jaxrs.services.n avigation.controller
</param-value>
</init-param>
<init-param>
<param-name>com.sun.jersey.spi.container.ContainerRequestFilters</param-name>
<param-value>
oracle.webcenter.jaxrs.framework.filters.EmptyQueryParamRequestFilter
</param-value>
</init-param>
<init-param>
<param-name>com.sun.jersey.spi.container.ContainerResponseFilters</param-name>
<param-value>
oracle.webcenter.jaxrs.framework.filters.PaginatedLinkedFilter;oracle.webcenter.jaxrs.framework.fil ters.HypermediaResponseFilter
</param-value>
</init-param>
<init-param>
<param-name>com.sun.jersey.config.property.resourceConfigClass</param-name>
<param-value>com.sun.jersey.api.core.ClasspathResourceConfig</param-value>
</init-param>
<init-param>
<param-name>token.names</param-name>
<param-value>stoken</param-value>
</init-param>
<init-param>
<param-name>token.manager.enabled</param-name>
<param-value>false</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>JerseyWebApplication</servlet-name>
<url-pattern>/api/*</url-pattern>
</servlet-mapping>
<filter>
<filter-name>restFacesContext</filter-name>
<filter-class>
oracle.webcenter.jaxrs.services.sitestructure.faces.context.FacesContextFilter
</filter-class>
</filter>
<filter-mapping>
<filter-name>restFacesContext</filter-name>
<servlet-name>JerseyWebApplication</servlet-name>
<dispatcher>FORWARD</dispatcher>
<dispatcher>REQUEST</dispatcher>
</filter-mapping>
<filter-mapping>
<filter-name>adfBindings</filter-name>
<servlet-name>JerseyWebApplication</servlet-name>
<dispatcher>FORWARD</dispatcher>
<dispatcher>REQUEST</dispatcher>
</filter-mapping>
<mime-mapping>
<extension>html</extension>
<mime-type>text/html</mime-type>
</mime-mapping>
JDeveloperのアプリケーション・ナビゲータ内の場所:
「アプリケーション・リソース」→「ディスクリプタ」→「ADF META-INF」→「adf-config.xml」
ファイル・システム上の場所:
APPLICATION_ROOT/.adf/META-INF/adf-config.xml
詳細な説明
次に示すエントリをルートの<adf-config>要素の子として追加します。既存の<mds-config>エントリはトップレベル・エントリとしてすでに存在しているはずなので、強調表示された(太字の) <namespace>要素をそのエントリにマージする必要があります。
<mds-config>要素は、トップレベル要素です。
<page-editor-config>要素は、リソース・マネージャ内のページとタスク・フローをカスタマイズおよびパーソナライズする場合のデフォルトのセキュリティ・ポリシーを設定します。第17章「リソース・マネージャの追加および使用」も参照してください。
<adf-portal-config>エントリは、アプリケーションのデフォルトのリソースの値を指定します。これらの値は、PreferenceBeanおよび「WebCenter Portal: Spaces管理」コンソールの「プリファレンス」タブに表示されるプリファレンスのデフォルト値です。強調表示されているパスを実際の値で置き換えます(これらのデフォルトのリソースはこの後の手順で作成されます)。
<adf-rcs-config>要素は、デフォルトのリソース・カタログ・レジストリとナビゲーション・レジストリを定義します。これらはリソース・マネージャでカタログとナビゲーションを編集する際に使用されます。強調表示されているパスを実際の値で置き換えます(これらのリソースはこの後の手順で作成されます)。
<rcv-config>要素はデフォルトのリソース・カタログを定義します。デフォルトのリソース・カタログは、コンポーザでページを編集する際に使用されます。この要素には、デフォルト・リソース・カタログとカタログ・セレクタが含まれます。カタログ・セレクタは、ページを編集する際に使用するカタログを決定します。PortalCatalogSelector属性はその値をポータル・プリファレンス設定から取得します。これらの設定のデフォルトは、<adf-portal-config>で定義されます。<rcv-config>で定義されているデフォルトのカタログは、カタログ・セレクタが値を返さない場合にのみ使用されます。プリファレンス設定は、<rcv-config>設定より優先されます。強調表示されているパスは、目的のカタログへのパスで置き換える必要があります。移行されるアプリケーションの既存のリソース・カタログをFrameworkアプリケーションでも引き続き使用する場合は、それらを/oracle/webcenter/portalappディレクトリ(この後の手順で作成されます)に移動する必要があります。第16章「リソース・カタログの作成と管理」も参照してください。
<mdsC:adf-mds-config version="11.1.1.000">
<mds-config xmlns="http://xmlns.oracle.com/mds/config">
<persistence-config>
<metadata-namespaces>
...
<namespace path="/oracle/webcenter/portalapp"
metadata-store-usage="WebCenterFileMetadataStore"/>
<namespace path="/oracle/webcenter/siteresources/scopedMD"
metadata-store-usage="WebCenterFileMetadataStore"/>
<namespace path="/oracle/webcenter/security/scopedMD"
metadata-store-usage="WebCenterFileMetadataStore"/>
<namespace path="/oracle/webcenter/siteresources/scopedMD/shared/"
metadata-store-usage="WebCenterFileMetadataStore"/>
<namespace path="/oracle/webcenter/quicklinks/scopedMD"
metadata-store-usage="WebCenterFileMetadataStore"/>
<namespace path="/oracle/webcenter/page/scopedMD"
metadata-store-usage="WebCenterFileMetadataStore"/>
<namespace path="/pageDefs"
metadata-store-usage="WebCenterFileMetadataStore"/>
...
</metadata-namespaces>
</persistence-config>
</mds-config>
</mdsC:adf-mds-config>
<page-editor-config xmlns="http://xmlns.oracle.com/adf/pageeditor/config">
<security-config>
<security-policies>
<security-policy name="customPagePolicy" override="pagePolicy">
<policy-class>oracle.webcenter.security.policy.WCPageSecurityPolicy</policy-class>
</security-policy>
<security-policy name="customTFPolicy" override="taskFlowPolicy">
<policy-class>oracle.webcenter.security.policy.WCTaskflowSecurityPolicy</policy-class>
</security-policy>
</security-policies>
</security-config>
</page-editor-config>
<adf-portal-config xmlns="http://xmlns.oracle.com/webcenter/portal/config">
<preferences>
<preference id="oracle.webcenter.portalapp.navigation.model"
desc="Default Navigation Model"
value="/path/to/your/default/navigation.xml"
resourceType="navigation" display="true"/>
<preference id="oracle.webcenter.portalapp.resourcecatalog"
desc="Default Resource Catalog"
value="/path/to/your/default/catalog.xml"
resourceType="ResourceCatalog" display="true"/>
<preference id="oracle.webcenter.portalapp.pagetemplate.pageTemplate"
desc="Default Page Template"
value="/path/to/your/default/page/template.jspx"
resourceType="Template" display="true"/>
<preference id="oracle.webcenter.portalapp.navigation.renderer"
desc="Default Navigation Renderer"
value="/oracle/webcenter/portalapp/pages/navigation-renderer.jspx"
display="false"/>
<preference id="oracle.webcenter.portalapp.skin"
desc="Default Portal Skin" value="portal"
resourceType="Skin" display="true"/>
</preferences>
</adf-portal-config>
<adf-rcs-config xmlns="http://xmlns.oracle.com/adf/rcs/adf-config">
<rcs-config>
<catalog-config default-scope="/"
default-registry="/path/to/your/default/catalog/registry.xml"/>
<navigation-config default-scope="/"
default-registry="/path/to/your/default/navigation/registry.xml"/>
<security-manager class-name= "oracle.webcenter.portalframework.genericsiteresources.internal.security.CatalogSecurityManager"/>
</rcs-config>
</adf-rcs-config>
<rcv-config xmlns="http://xmlns.oracle.com/adf/rcs/viewer/adf-config">
<default-catalog catalog-name="/path/to/your/default/catalog.xml"/>
<catalog-selector class-name="oracle.webcenter.portalframework.sitestructure.rc.PortalCatalogSelector"/>
</rcv-config>
この項では、アプリケーションに追加する必要があるプロジェクト構成ファイル(JARファイル、テクノロジ・スコープ、WARファイル)をリストします。
次のOracle WebCenter Portal: Frameworkライブラリをプロジェクト・クラスパスに追加します。これらのライブラリにより、Framework固有のJARがデザイン・タイム・クラスパスに追加されます。(それには、プロジェクトを右クリックし、「プロジェクト・プロパティ」、「ライブラリとクラスパス」の順に選択します。単純に、使用可能なライブラリのリストからライブラリを追加します。)
WebCenter Portal Framework
WebCenter Portal Framework REST API
次のテクノロジ・スコープをアプリケーションに追加します。このテクノロジ・スコープにより、アプリケーションがPS5 Frameworkアプリケーションとして識別されます。第6.1項「Frameworkアプリケーションとテクノロジ・スコープの手動による構成」も参照してください。
WebCenter Portal – Framework
この後の説明に従って、プロジェクトのWARデプロイメント・プロファイルを作成(または既存のものを変更)し、パターン・フィルタを追加します。デプロイメント・プロファイルとフィルタにより、Frameworkアプリケーションのリソースがデプロイ時に正しくパッケージされることが保証されます。
Webファイル
対象外: oracle/webcenter/portalapp/*
対象外: oracle/webcenter/siteresources/scopedMD/*
WEB-INF/クラス
対象外: oracle/webcenter/portalapp/*/*.dcx
対象外: oracle/webcenter/portalapp/*/*.cpx
対象外: oracle/webcenter/portalapp/*/*.xml
フィルタを追加する基本手順は次のとおりです。
プロジェクトを右クリックし、「プロジェクト・プロパティ」を選択します。
「プロジェクト・プロパティ」ダイアログで「デプロイ」ノードを選択します。
「デプロイメント・プロファイル」リストでFrameworkアプリケーションのWARファイル・デプロイメント・プロファイルを選択し、「編集」をクリックします。
「WARデプロイメント・プロファイルのプロパティの編集」ダイアログで、「ファイル・グループ」ノードを開き、「Webファイル」ノードの下の「フィルタ」を選択します。
図H-1に示すように、「パターン」タブを選択します。
除外するファイル・パターンを選択します。
WEB-INF/classesを除外する手順は、前述の手順とほぼ同じです。「Webファイル」を選択してから「フィルタ」を選択する手順のかわりに、「WEB-INF/classes」を選択してから「フィルタ」を選択してください。
Frameworkアプリケーションには、特定のファイル構造が必要です。この項では、このファイル構造を作成および構成する方法について説明します。第9.12項「WebCenter Portalファイルの編成方法」も参照してください。
指定された場所にポータル・フォルダ構造を作成します。
JDeveloperのアプリケーション・ナビゲータ内の場所:
「PROJECT_NAME」→「Webコンテンツ」
ファイル・システム上の場所:
PROJECT_ROOT/public_html
詳細な説明
前述の場所(JDevの「Webコンテンツ」フォルダ)に次のフォルダ構造を作成します。フォルダを追加するには、「新規ギャラリ」ダイアログでportalappフォルダを右クリックし、「一般」を選択します。次に、アイテムのリストから「フォルダ」を選択します。
oracle/webcenter/portalapp/
catalogs/
navigations/
pages/
pagetemplates/
shared/
/oracle/webcenter/portalappフォルダ構造は必須であり、すべてのポータル・リソースをこのネームスペースに作成する必要があります。ファイル構造の詳細は、第9.12.1.2項「WebCenter Portal: Frameworkアプリケーションの編成方法の詳細」を参照してください。
他のサブフォルダ(sharedフォルダを除く)は、厳密には必要ありませんが、編成するには便利です。ただし、sharedフォルダは存在する必要があります。このフォルダは、ポータル・リソース(イメージなど)の関連リソースを配置する必要があるパスとして使用されます。
generic-site-resources.xmlファイルは、リソースを実行時にリソース・マネージャに登録するために必要です。リソース・マネージャの詳細は、第17章「リソース・マネージャの追加および使用」を参照してください。
リソース・レジストリ・ファイルは、次の内容を持つAPPLICATION_ROOT/mds/oracle/webcenter/siteresources/scopedMD/s8bba98ff_4cbb_40b8_beee_296c916a23ed/generic-site-resources.xmlとして作成します。このフォルダ構造は手動で作成する必要があります。デフォルトでは存在しません。
<?xml version = '1.0' encoding = 'UTF-8'?>
<resources xmlns="http://xmlns.oracle.com/webcenter/portalframework/genericSiteResources"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<resourceType name="siteTemplate" resourceBundle=""/>
<resourceType name="pageStyle" resourceBundle=""/>
<resourceType name="dataPresenter" resourceBundle=""/>
<resourceType name="contentPresenter" resourceBundle=""/>
<resourceType name="resourceCatalog" resourceBundle=""/>
<resourceType name="navigation" resourceBundle=""/>
<resourceType name="skin" resourceBundle=""/>
<resourceType name="taskFlowStyle" resourceBundle=""/>
<resourceType name="taskFlow" resourceBundle=""/>
<resourceType name="dataControl" resourceBundle=""/>
</resources>
この項では、様々なポータル・リソース・ファイルを作成および登録する方法について説明します。
ナビゲーション・モデル・ファイルdefault-navigation-model.xmlを使用して、ポータル・サイトにナビゲーション構造を組み込むことができます。詳細は、第11章「ポータル用のナビゲーション・モデルの構築」および第9.5.3項「ナビゲーション・モデルおよびナビゲーション・レジストリの概要」を参照してください。
JDeveloperのアプリケーション・ナビゲータ内の場所:
「PROJECT_NAME」→「Webコンテンツ」→「oracle/webcenter/portalapp/navigations」
ファイル・システム上の場所:
PROJECT_ROOT/public_html/oracle/webcenter/portalapp/navigations
手順:
アプリケーション・ナビゲータで/oracle/webcenter/portalapp/navigationsフォルダを右クリックし、「新規」を選択します。
「新規ギャラリ」ダイアログで、「Web層」の下の「ポータル」ノードを開き、「ナビゲーション」を選択します。
名前(default-navigation-model.xmlなど)を入力し、ディレクトリがPROJECT_ROOT/public_html/oracle/webcenter/portalapp/navigationsであることを確認し、「ポータル・リソースとして作成」チェック・ボックスを選択します。
ナビゲーション・レジストリ・ファイルnavigation-registry.xmlは、リソース・マネージャでナビゲーションを編集する場合に使用します。第11章「ポータル用のナビゲーション・モデルの構築」と第9.5.3項「ナビゲーション・モデルおよびナビゲーション・レジストリの概要」も参照してください。
JDeveloperのアプリケーション・ナビゲータ内の場所:
「PROJECT_NAME」→「Webコンテンツ」→「oracle/webcenter/portalapp/navigations」
ファイル・システム上の場所:
PROJECT_ROOT/public_html/oracle/webcenter/portalapp/navigations
手順:
新しいFrameworkアプリケーションを作成します。この新しいアプリケーションから、移行中のアプリケーションにいくつかのファイルをコピーします。
新しいアプリケーションから、次のファイルをコピーします。
<PROJECT_ROOT>/public_html/oracle/webcenter/portalapp/navigations/navigation-registry.xml
コピー先は、移行中のアプリケーションの次の場所です。
<PROJECT_ROOT>/oracle/webcenter/portalapp/navigations/navigation-registry.xml
newとlinksの2つのトップレベル・フォルダを追加します。
newフォルダには、実行時に編集する際にナビゲーションに追加できるようにする必要がある一連のリソースを追加します。
linksフォルダには、リンク・ピッカーに表示されるようにする必要がある一連のリソースを追加します。リンク・ピッカーは、実行時にリンク・タイプのアイテムをナビゲーションに追加する場合に表示されます。詳細は、第11章「ポータル用のナビゲーション・モデルの構築」を参照してください。
カタログでは、レイアウト・コンポーネント、タスク・フロー、ポートレット、ドキュメントなど、権限のあるユーザーが実行時に追加できる関連性のない他の要素グループの集まりを指定します。Oracle WebCenter Portalのコンポーザは、実行時にカタログを使用して、権限のあるユーザーがポータル・ページに追加できる要素を判別します。第17章「リソース・マネージャの追加および使用」と第9.5.4項「リソース・カタログおよびカタログ・レジストリの概要」も参照してください。
JDeveloperのアプリケーション・ナビゲータ内の場所:
「PROJECT_NAME」→「Webコンテンツ」→「oracle/webcenter/portalapp/catalogs」
ファイル・システム上の場所:
PROJECT_ROOT/public_html/oracle/webcenter/portalapp/catalogs
次の2つの手順のどちらかを実行します。1つめの手順では新しいリソース・カタログの作成方法について、2つめの手順では現在のアプリケーションのリソース・カタログを再利用する方法について、それぞれ説明します。
手順:
アプリケーション・ナビゲータで/oracle/webcenter/portalapp/catalogsフォルダを右クリックし、「新規」を選択します。
「新規ギャラリ」ダイアログで、「Web層」の下の「ポータル」ノードを開き、「アプリケーション・リソース・カタログ」を選択します。
名前(default-catalog.xmlなど)を入力し、ディレクトリがPROJECT_ROOT/public_html/oracle/webcenter/portalapp/catalogsであることを確認し、「ポータル・リソースとして作成」チェック・ボックスを選択します。
実行時に編集する際にページに追加できるようにする必要がある一連のリソースを追加します。詳細は、第17.2項「JDeveloperでのポータル・リソースの使用」を参照してください。
代替手順:
既存のリソース・カタログを再利用できる場合は、この手順を使用することを検討します。
アプリケーションに既存のリソース・カタログ(通常はAPPLICATION_ROOT/mds/oracle/adf/rc/metadataにあります)をPROJECT_ROOT/public_html/oracle/webcenter/portalapp/catalogsにコピーします。
PROJECT_ROOT/public_html/oracle/webcenter/portalapp/catalogsの下の各カタログについて、右クリックして「ポータル・リソースの作成」を選択します。
この代替手順では、各カタログがポータル・リソースとして登録されるので、WebCenter Portal管理コンソールの「リソース」タブに表示されます。
リソース・カタログ・レジストリ・ファイルは、実行時にリソース・カタログに追加できる一連のアイテムを定義します。第16章「リソース・カタログの作成と管理」を参照してください。
JDeveloperのアプリケーション・ナビゲータ内の場所:
「PROJECT_NAME」→「Webコンテンツ」→「oracle/webcenter/portalapp/catalogs」
ファイル・システム上の場所:
PROJECT_ROOT/public_html/oracle/webcenter/portalapp/catalogs
手順:
新しいFrameworkアプリケーションを作成します。この新しいアプリケーションから、移行中のアプリケーションにいくつかのファイルをコピーします。
新しいアプリケーションから、次のファイルをコピーします。
<PROJECT_ROOT>/public_html/oracle/webcenter/portalapp/catalogs/catalog-registry.xml
コピー先は、移行中のアプリケーションの次の場所です。
<PROJECT_ROOT>/oracle/webcenter/portalapp/catalogs/catalog-registry.xml
ページ・テンプレートを使用すると、ページのレイアウト全体を定義して、それらをページに適用することで、ポータル全体で一貫したレイアウトを作成できます。詳細は、第12章「ポータルのルック・アンド・フィールの設計」を参照してください。
JDeveloperのアプリケーション・ナビゲータ内の場所:
「PROJECT_NAME」→「Webコンテンツ」→「oracle/webcenter/portalapp/pagetemplates」
ファイル・システム上の場所:
PROJECT_ROOT/public_html/oracle/webcenter/portalapp/pagetemplates
手順:
アプリケーション・ナビゲータで/oracle/webcenter/portalapp/pagetemplatesフォルダを右クリックし、「新規」を選択します。
「新規ギャラリ」ダイアログで、「Web層」の下の「JSF」ノードを開き、「JSFページ・テンプレート」を選択します。
「関連ADFmページ定義の作成」チェック・ボックスを選択し、contentという名前のファセット定義を追加します。
ページ・テンプレートにcontentファセットが作成されたら、そこに参照を追加します。次に例を示します。
<?xml version='1.0' encoding='UTF-8'?>
<jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" version="2.1"
xmlns:af="http://xmlns.oracle.com/adf/faces/rich">
<jsp:directive.page contentType="text/html;charset=UTF-8"/>
<af:pageTemplateDef var="attrs">
<af:xmlContent>
<component xmlns="http://xmlns.oracle.com/adf/faces/rich/component">
<display-name>Default Page Template</display-name>
<facet>
<facet-name>content</facet-name>
</facet>
</component>
</af:xmlContent>
<af:facetRef facetName="content"/>
</af:pageTemplateDef>
</jsp:root>
アプリケーション・ナビゲータでページ・テンプレートを右クリックして「ポータル・リソースの作成」を選択し、「OK」をクリックします。
ナビゲーション・レンダラ・ファイルは、ポートレット、コンテンツ、タスク・フローなど、ナビゲーションに表示されるページ以外のリソースのレンダリングに使用されます。詳細は、第11.5項「ナビゲーション・レンダラの編集」を参照してください。
JDeveloperのアプリケーション・ナビゲータ内の場所:
「PROJECT_NAME」→「Webコンテンツ」→「oracle/webcenter/portalapp/pages/」
ファイル・システム上の場所:
PROJECT_ROOT/public_html/oracle/webcenter/portalapp/pages/
手順:
前述の場所で指定されているフォルダで、新しいJSFページを作成します。「新規」メニューから「Web層」、「JSF」、「JSFページ」の順に選択します。ファイルの名前としてnavigation-renderer.jspxを指定します。
ファイルの内容を次のコードで置き換えます。
<?xml version='1.0' encoding='UTF-8'?>
<jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" version="2.1"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:af="http://xmlns.oracle.com/adf/faces/rich">
<jsp:directive.page contentType="text/html;charset=UTF-8"/>
<f:view>
<af:document id="d1"
title="#{SiteStructureContext.currentNavigationModel.currentSelection.title}">
<af:form id="f1">
<af:pageTemplate value="#{bindings.pageTemplateBinding.templateModel}"
id="pt1">
<f:facet name="content">
<af:region value="#{bindings.sitestructurerenderer1.regionModel}"
id="r1"/>
</f:facet>
</af:pageTemplate>
</af:form>
</af:document>
</f:view>
</jsp:root>
pages.xml (ページ階層ファイル)は、ページ間の親子関係を使用してページをツリー構造に編成します。この階層構造により、ページからサブページにセキュリティ設定を簡単に伝播または継承することが可能になります。第9.5.1項「ページ、ページ・テンプレートおよびポータルのページ階層の概要」を参照してください。
|
注意: JDeveloperで |
JDeveloperのアプリケーション・ナビゲータ内の場所:
「PROJECT_NAME」→「Webコンテンツ」→「oracle/webcenter/portalapp/pagehierarchy」
ファイル・システム上の場所:
PROJECT_ROOT/public_html/oracle/webcenter/portalapp/pagehierarchy
手順:
前述の場所で指定されているフォルダで、pages.xmlという名前の新しいファイルを作成します。
このファイルに次の内容を追加します。
<?xml version="1.0" encoding="US-ASCII" ?>
<pagesDef xmlns="http://xmlns.oracle.com/webcenter/page"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation=
"http://xmlns.oracle.com/webcenter/page/pagesDef.xsd"
/>
この項では、Frameworkアプリケーションでセキュリティを構成する方法について説明します。
ADF認証および認可のためにADFセキュリティが構成されていることを確認します。詳細は、第69.3.1項「ADFセキュリティ設定の構成」を参照してください。アプリケーションでセキュリティがまだ構成されていない場合、次のように構成できます。
「アプリケーション」メニューから、「保護」、「ADFセキュリティの構成」の順に選択します。
「ADF認証および認可」オプションを選択します。
「終了」をクリックします。
これらの権限は、実行時に「ポータル管理」ページとリソース・マネージャが正しく機能するために必要です。
|
注意:
|
アプリケーション・ナビゲータで、「アプリケーション・リソース」フォルダ、「ディスクリプタ」フォルダ、META-INFフォルダの順に開きます。
META-INFフォルダでjazn-data.xmlファイルを開きます。
Administratorという名前のアプリケーション・ロールがまだ存在していない場合は追加します。第69.2項「アプリケーション・ロールの作成」を参照してください。
次のように、permissionエントリをソース・ファイルに手動で挿入します。繰り返しますが、ファイルの内容全体を次のコードで置き換えるのではなく、強調表示されている要素をマージするように注意してください。
<grant>
<grantee>
<principals>
<principal>
<class>oracle.security.jps.internal.core.principals.JpsAuthenticatedRoleImpl</class>
<name>authenticated-role</name>
</principal>
</principals>
</grantee>
<permissions>
...
<permission>
<class>oracle.adf.share.security.authorization.RegionPermission</class>
<name>oracle.webcenter.portalwebapp.pages.adminPageDef</name>
<actions>view</actions>
</permission>
<permission>
<class>oracle.adf.share.security.authorization.RegionPermission</class>
<name>oracle.webcenter.taskflow.view.ContainerPageDef</name>
<actions>grant</actions>
</permission>
<permission>
<class>oracle.webcenter.security.auth.HierarchicalResourcePermission</class>
<name>serviceID=oracle.webcenter.page,scopeID=s8bba98ff_4cbb_40b8_beee_296c916a23ed,resourceID=s8bba98ff_4cbb_40b8_beee_296c916a23ed</name>
<actions>personalize,view</actions>
</permission>
<permission>
<class>oracle.adf.rc.security.CatalogPermission</class>
<name>/oracle/webcenter/quicklinks/scopedMD/.*</name>
<actions>create,edit</actions>
</permission>
...
</permissions>
</grant>
<grant>
<grantee>
<principals>
<principal>
<class>oracle.security.jps.internal.core.principals.JpsAnonymousRoleImpl</class>
<name>anonymous-role</name>
</principal>
</principals>
</grantee>
<permissions>
...
<permission>
<class>oracle.adf.share.security.authorization.RegionPermission</class>
<name>oracle.webcenter.siteresources.scopedMD.*</name>
<actions>view</actions>
</permission>
<permission>
<class>oracle.adf.controller.security.TaskFlowPermission</class>
<name>/oracle/webcenter/siteresources/scopedMD/.*</name>
<actions>view</actions>
</permission>
<permission>
<class>oracle.adf.controller.security.TaskFlowPermission</class>
<name>/oracle/webcenter/portalapp/.*</name>
<actions>view</actions>
</permission>
<permission>
<class>oracle.adf.share.security.authorization.RegionPermission</class>
<name>oracle.webcenter.taskflow.view.ContainerPageDef</name>
<actions>view</actions>
</permission>
<permission>
<class>oracle.adf.share.security.authorization.RegionPermission</class>
<name>oracle.webcenter.taskflow.view.ViewerPageDef</name>
<actions>view</actions>
</permission>
<permission>
<class>oracle.adf.share.security.authorization.RegionPermission</class>
<name>oracle.webcenter.taskflowstyle.view.PreviewPageDef</name>
<actions>view</actions>
</permission>
<permission>
<class>oracle.adf.share.security.authorization.RegionPermission</class>
<name>oracle.webcenter.page.pstemplates.*</name>
<actions>view</actions>
</permission>
<permission>
<class>oracle.adf.share.security.authorization.RegionPermission</class>
<name>oracle.webcenter.portalapp.pagetemplates.*</name>
<actions>view</actions>
</permission>
<permission>
<class>oracle.webcenter.security.auth.HierarchicalResourcePermission</class>
<name>serviceID=oracle.webcenter.page,scopeID=s8bba98ff_4cbb_40b8_beee_296c916a23ed,resourceID=s8bba98ff_4cbb_40b8_beee_296c916a23ed</name>
<actions>view</actions>
</permission>
<permission>
<class>oracle.adf.controller.security.TaskFlowPermission</class>
<name>/oracle/webcenter/navigationtaskflows/view/.*</name>
<actions>view</actions>
</permission>
<permission>
<class>oracle.adf.controller.security.TaskFlowPermission</class>
<name>/oracle/webcenter/.*</name>
<actions>view</actions>
</permission>
...
</permissions>
</grant>
<grant>
<grantee>
<principals>
<principal>
<class>oracle.security.jps.service.policystore.ApplicationRole</class>
<name>Administrator</name>
<guid>843A31B1C1B211DFBFA9CF5E373CA556</guid>
</principal>
</principals>
</grantee>
<permissions>
...
<permission>
<class>oracle.webcenter.security.auth.HierarchicalResourcePermission</class>
<name>serviceID=oracle.webcenter.page,scopeID=s8bba98ff_4cbb_40b8_beee_296c916a23ed,resourceID=s8bba98ff_4cbb_40b8_beee_296c916a23ed</name>
<actions>create,delete,grant,manage,personalize,update,view</actions>
</permission>
<permission>
<class>oracle.webcenter.security.auth.WebCenterResourcePermission</class>
<name>oracle_webcenter_siteresource_s8bba98ff_4cbb_40b8_beee_296c916a23ed_contentpresenter_.*</name>
<actions>manage</actions>
</permission>
<permission>
<class>oracle.webcenter.security.auth.WebCenterResourcePermission</class>
<name>oracle_webcenter_siteresource_s8bba98ff_4cbb_40b8_beee_296c916a23ed_datacontrol_.*</name>
<actions>manage</actions>
</permission>
<permission>
<class>oracle.webcenter.security.auth.WebCenterResourcePermission</class>
<name>oracle_webcenter_siteresource_s8bba98ff_4cbb_40b8_beee_296c916a23ed_navigation_.*</name>
<actions>manage</actions>
</permission>
<permission>
<class>oracle.webcenter.security.auth.WebCenterResourcePermission</class>
<name>oracle_webcenter_siteresource_s8bba98ff_4cbb_40b8_beee_296c916a23ed_pagestyle_.*</name>
<actions>manage</actions>
</permission>
<permission>
<class>oracle.webcenter.security.auth.WebCenterResourcePermission</class>
<name>oracle_webcenter_siteresource_s8bba98ff_4cbb_40b8_beee_296c916a23ed_catalog_.*</name>
<actions>manage</actions>
</permission>
<permission>
<class>oracle.webcenter.security.auth.WebCenterResourcePermission</class>
<name>oracle_webcenter_siteresource_s8bba98ff_4cbb_40b8_beee_296c916a23ed_pagetemplate_.*</name>
<actions>manage</actions>
</permission>
<permission>
<class>oracle.webcenter.security.auth.WebCenterResourcePermission</class>
<name>oracle_webcenter_siteresource_s8bba98ff_4cbb_40b8_beee_296c916a23ed_skin_.*</name>
<actions>manage</actions>
</permission>
<permission>
<class>oracle.webcenter.security.auth.WebCenterResourcePermission</class>
<name>oracle_webcenter_siteresource_s8bba98ff_4cbb_40b8_beee_296c916a23ed_taskflow_.*</name>
<actions>manage</actions>
</permission>
<permission>
<class>oracle.webcenter.security.auth.WebCenterResourcePermission</class>
<name>oracle_webcenter_siteresource_s8bba98ff_4cbb_40b8_beee_296c916a23ed_taskflowstyle_.*</name>
<actions>manage</actions>
</permission>
...
</permissions>
</grant>