ヘッダーをスキップ
Oracle WebCenter Framework開発者ガイド
10g(10.1.3.4)
B50831-02
  目次
目次
索引
索引

戻る
戻る
 
次へ
次へ
 

6 Oracle WebCenter Wikiの統合

この章では、WebCenterアプリケーションにOracle WebCenter Wikiを統合する方法を説明します。また、Wiki、Wiki構文、およびWebCenterアプリケーションでのOracle WebCenter Wiki Webサービスの使用方法について説明します。

Oracle WebCenter Wikiの管理オプションは、付録E「Oracle WebCenter Wikiの管理」を参照してください。

この章の内容は、次のとおりです。

6.1 Wikiの概要

Oracle WebCenter Suiteを使用すると、Oracle WebCenter Wikiを含め様々なサービスをWebCenterアプリケーションに統合することができます。Wikiは、ユーザーがコンテンツをブラウズでき、更新や削除、あるいはその他の編集を行うことができるWebサイトのタイプです。場合によっては、これらを行うための登録の必要もありません。このように容易な相互作用と豊富な操作方法のため、Wikiは共同での作成において有効なツールです。つまり、Wikiマークアップ言語を使用して、複数のユーザーが一緒にコンテンツを作成します。Wikiの詳細は、Wikipedia(http://en.wikipedia.org/wiki/Wiki)を参照してください。

Oracle WebCenter Suiteでは、独自のWebベース・インタフェースとWebサービスを含むOracle WebCenter Wikiを使用できます。Webサービスを利用して、WebCenterアプリケーションにWikiを埋め込むことができます。Oracle WebCenter Suiteのユーザーは、WikiのWebベース・インタフェースを使用してWikiページの作成や編集を行うことができます。WebCenterアプリケーション開発者は、Webサービス・インタフェースを使用してWiki機能をアプリケーションに埋め込むことができます。

6.2 Oracle WebCenter Wikiの設定

この項では、Oracle WebCenter Suite環境にWikiをインストールして構成する方法について説明します。

6.2.1 Oracle WebCenter Wikiのインストール

Oracle WebCenter Wikiをインストールする手順は、次のとおりです。

  1. Application Server Controlに管理者としてログインします。

  2. Oracle Application Serverインスタンスをクリックして、そのインスタンスのアプリケーション・サーバー・ページに移動します。

  3. Oracle WebCenter Wikiを含めるために新しいOC4Jインスタンスを作成することをお薦めします。推奨ではありませんが、既存のOC4Jインスタンスを使用することもできます。新しいOC4Jインスタンスを作成するには、「OC4Jインスタンスの作成」をクリックします(図6-1)。

    図6-1 Application Server Controlのアプリケーション・サーバー・ページ

    図6-1の説明が続きます
    「図6-1 Application Server Controlのアプリケーション・サーバー・ページ」の説明

  4. 新しいOC4Jインスタンスに関して値を入力します。「作成後にこのOC4Jインスタンスを起動します。」を選択してから、「作成」をクリックします。

  5. 18.3項「ポートレット実行のためのアプリケーション・サーバーまたはスタンドアロンOC4Jの構成」の手順に従って、ポートレットを実行するようにOC4Jインスタンスを構成します。

  6. WikiをデプロイするOC4Jインスタンスの名前をクリックします。「ホーム」タブが表示されます(図6-2)。

    図6-2 OC4Jインスタンスの「ホーム」タブ

    図6-2の説明が続きます
    「図6-2 OC4Jインスタンスの「ホーム」タブ」の説明

  7. 「アプリケーション」タブをクリックします(図6-3)。

    図6-3 OC4Jインスタンスの「アプリケーション」タブ

    図6-3の説明が続きます
    「図6-3 OC4Jインスタンスの「アプリケーション」タブ」の説明

  8. 「デプロイ」をクリックします。

  9. EARファイルの場所(ローカルまたはホスト)を選択し、パスを指定します(図6-4)。


    ヒント:

    Oracle WebCenter Wiki EARファイルはowc_wiki.earです。

  10. 「新規デプロイ・プランを自動的に作成します。」を選択します(図6-4)。

    図6-4 「デプロイ: アーカイブの選択」ページ

    図6-4の説明が続きます
    「図6-4 「デプロイ: アーカイブの選択」ページ」の説明

  11. 「次へ」をクリックします。EARファイルがローカルにある場合、サーバーにアップロードされるまでに数分かかることがあります。

  12. 「アプリケーション名」(たとえばowc_wiki)を入力し、「コンテキスト・ルート」もアプリケーション名に対応するように設定されていることを確認します。アプリケーションにアクセスするときはコンテキスト・ルートを使用します(図6-5)。

    図6-5 「デプロイ: アプリケーション属性」ページ

    図6-5の説明が続きます
    「図6-5 「デプロイ: アプリケーション属性」ページ」の説明

  13. 「次へ」をクリックします。

  14. デプロイ設定を確認します(図6-6)。

    図6-6 「デプロイ: デプロイ設定」ページ

    図6-6の説明が続きます
    「図6-6 「デプロイ: デプロイ設定」ページ」の説明

  15. 「デプロイ」をクリックします。デプロイが正常に終了すると、確認メッセージが表示されます。デプロイが失敗した場合は、ログを調べてデプロイ設定が正しいことを確認します。


    注意:

    Oracle WebCenter Wikiには、特定のポート(1475)で実行するHSQLデータベースが含まれます。このポートが使用できない場合は、インストール後にbeans.xmlファイルでポートを変更できます。このファイルはOC4J_HOME/applications/application_root/owc_wiki/WEB-INF/classesにあります。

  16. 「戻る」をクリックします。OC4Jインスタンスでアプリケーションが実行しているのを確認できます(図6-7)。

    図6-7 デプロイされたWikiアプリケーションを含む「アプリケーション」タブ



6.2.2 セキュリティの構成

Oracle WebCenter WikiはOracle WebCenter Suite Java SSOを使用するため、Oracle WebCenter Wikiのデプロイ先のアプリケーション・サーバーではJava SSOを有効化する必要があります。Java SSOが実行していることを確認するには、Enterprise Managerに戻ってOC4Jインスタンスを起動します。Java SSOがOC4Jインスタンス内のアプリケーションとして表示されるはずです。インスタンスが起動したら、Java SSOが実行していることを確認します。Java SSOが停止している場合は、起動します。

Java SSOを起動するときに、Java SSOが適切に構成されていないという警告メッセージを受け取ることがあります(図6-8)。この警告は、1クラスタで複数のJava SSOアプリケーションを実行していることを示しています。クラスタ化環境でのJava SSOの適切な構成を確認するには、6.2.2.2項「Java SSOのクラスタ化構成」を参照してください。

図6-8 Java SSO構成の警告

図6-8の説明が続きます
「図6-8 Java SSO構成の警告」の説明


注意:

Java SSOの詳細は、『Oracle Containers for J2EEセキュリティ・ガイド』(http://download-west.oracle.com/docs/cd/B32110_01/web.1013/b28957/javasso.htm#BABGJCFD)を参照してください。その他のSSO設定の詳細は、『Oracle Containers for J2EEセキュリティ・ガイド』の第14章「OC4J Javaシングル・サインオン」(http://download-west.oracle.com/docs/cd/B32110_01/web.1013/b28957/javasso.htm#JISEC1120)を参照してください。

この項の内容は、次のとおりです。

6.2.2.1 ユーザー・グループ

セキュリティ・ロールauthenticated-usersを持つWebCenterアプリケーション・ユーザーのみが、Oracle WebCenter Wikiページにログインしてページを表示できます。デフォルトでは、2つのOracle WebCenter Suiteセキュリティ・グループ(oc4j-administratorsおよびusers)にこのセキュリティ・ロールがあります。2つのグループいずれかに所属するメンバーのみがWikiページにアクセスできます。任意のOracle WebCenter Suiteグループまたはユーザーに対してロールauthenticated-userの割当て(または削除)を行うことで、Wikiページのログインおよび表示を行えるユーザーを制御することができます。この方法は、『Oracle Containers for J2EEセキュリティ・ガイド』の「OC4Jセキュリティに関する一般的なタスク」(http://download-west.oracle.com/docs/cd/B32110_01/web.1013/b28957/deploysimple.htm#CHDIGIFJ)を参照してください。

デプロイの後では、デフォルトのWikiユーザーoc4jadminにWikiロールADMINが割り当てられています。ユーザーがWebCenterアプリケーションにログインして最初にWikiにアクセスするとき、Oracle WebCenter Wikiは、同じユーザー名のWikiユーザーがユーザー・リポジトリにすでに存在しているかどうかをチェックします。ユーザーが存在している場合、そのユーザーは認証されてWikiにアクセスします。ユーザー名がまだ存在していない場合、Oracle WebCenter Wikiは、WebCenterアプリケーション・ユーザーと同名の新しいWikiユーザーを作成して、そのユーザーにWikiロールUSERを割り当てます。

Wiki管理者(WikiロールADMINに割り当てられているユーザー)は、新しいユーザーを作成することができます。ユーザーを手動または自動で作成したら、そのWikiユーザーのロールをADMINまたはUSERに手動で変更することができます。


注意:

Wiki管理の詳細は、付録E「Oracle WebCenter Wikiの管理」を参照してください。

6.2.2.2 Java SSOのクラスタ化構成

Enterprise Managerでcustom.sso.key.aliasを設定できます。アプリケーション・サーバー・インスタンスの「クラスタ・トポロジ」ページで、一番下の「Java SSO構成」をクリックします。『Oracle Containers for J2EEセキュリティ・ガイド』の「OC4J Javaシングル・サインオン」を参照してください。

Enterprise ManagerでJava SSOを構成した場合、ユーザーがログアウトしようとするときに、Oracle Application Serverホームページにエラーが表示されることがあります。この問題を修正するには、jazn.xmlから次のプロパティを削除します。

property name="custom.sso.cookie.domain" value=""
property name="custom.sso.url.param" value=""

6.2.2.3 パスフレーズの生成

Oracle WebCenter Wikiをデプロイしたら、パスフレーズを生成する必要があります。パスフレーズは、Oracle WebCenter Wiki Webサービスでのメソッドのコールや、サンプル・ポートレットの実行のためにWiki開発者が使用します。使用方法は、6.4.1.2項「Webサービス・セキュリティ」で説明します。


注意:

Oracle WebCenter Wiki Webサービスを使用する予定がない場合、この項の内容は必要ありません。

パラメータ・キーを生成する手順は、次のとおりです。

  1. Enterprise Managerにログインします。

  2. Oracle WebCenter WikiをインストールしたOC4Jインスタンスで、デプロイしたOracle WebCenter Wikiアプリケーションを探します。アプリケーションのルートは、owc_wikiのように表示されるはずです。

  3. アプリケーションをクリックします。

  4. owc_wikiモジュールをクリックします。

  5. 「管理」タブをクリックします。

  6. 「管理」ページで「環境エントリ・マッピング」をクリックします。

  7. タスク「環境エントリ・マッピング」を探して、/oracle/webCenter/owcWiki/webServiceSecurityPassphraseの値を更新します。

  8. 新しいパスフレーズで値を更新し、「OK」をクリックします(作成するパスフレーズとして任意の値を使用できます)。デプロイ済の値を更新すると、設定した値はアプリケーションを再デプロイしても上書きされません。

6.2.3 場所

EARファイルをデプロイしてWiki構成ファイルを設定したら、WebCenterアプリケーションにWikiを統合できます。この方法は、6.4項「WebCenterアプリケーションへのOracle WebCenter Wikiの統合」を参照してください。表6-1に、Wikiのアクセス・ポイントを示します。

表6-1 Webアクセス・ポイントおよび場所

Webアクセス・ポイント URL

Wiki

http://host:port/owc_wiki

Webサービスのエンド・ポイント

http://host:port/owc_wiki/services/WikiRemoteService

WebサービスのWSDLファイル

http://host:port/owc_wiki/services/WikiRemoteService?WSDL

ポートレット・プロデューサのURL

http://host:port/wikiproducer/portlets/wsrp2?WSDL


注意:

Oracle WebCenter Wikiをデプロイした場所のホストとポートを使用します。

Oracle WebCenter Wikiでは、Wikiページはファイル・システムのOC4J_HOME/applications/application_name/owc_wiki/pagesに格納されます。この場所のフォルダがドメイン、各フォルダ内のファイルがページです。

6.3 Oracle WebCenter Wikiの使用

Oracle WebCenter Wikiを使用すると、ユーザーはページの作成、編集および変更を行うことができ、管理タスクを実行する必要はありません。詳細は、付録E「Oracle WebCenter Wikiの管理」を参照してください。Oracle WebCenter Wikiでは、多数の標準Wiki機能(ページへの添付ファイルの追加、ブックマーク、検索など)も提供されます。

この項の内容は、次のとおりです。

6.3.1 Wikiコンテンツの構造

Oracle WebCenter Wikiでは、コンテンツはドメインとページに分類されます。Wikiユーザーはページの作成と編集を行うことができます。管理者は、それらのページを含むドメインを作成します。管理者は各ドメインのメニューを作成することもできます。メニューによってユーザーがドメインのページやその他の組込み機能(ポピュラー・ページなど)に素早くアクセスできるようになります。Wikiでは、作成者や変更日時などを含めてページのすべてのバージョンが管理されます。

6.3.2 ページの編集および作成

この項では、Oracle WebCenter Wikiで既存のページを編集する方法と新しいページを作成する方法について説明します。

Wikiにアクセスするには、次のURLにアクセスしてログインします。

http://host:port/owc_wiki

注意:

hostとportは、Oracle WebCenter Wikiをインストールしたホストとポートです。以前に認証されていない場合は、ログイン・プロンプトが表示され、ユーザー名とパスワードを入力することができます。

図6-9 Wikiホームページ

図6-9の説明が続きます
「図6-9 Wikiホームページ」の説明

右上にあるリンクを使用して、Wikiの別の領域、つまりブックマークや管理にナビゲートできます。ブックマークしたページの表示や、Wikiの管理(管理者としてログインした場合)を行うことができます。


注意:

Wikiの管理や「管理」ページの様々なオプションの詳細は、E.1項「管理モードへのアクセス」を参照してください。

6.3.2.1 ページの編集

ユーザーは、ページの表示、編集、情報確認、添付ファイル追加といったタスクを実行できます。これらのタスクを実行するには、該当するタブをクリックします(図6-10)。

図6-10 Wikiのタブ

図6-10の説明が続きます
「図6-10 Wikiのタブ」の説明

現行ページを編集するには、「Edit」タブをクリックします。「Edit」ページにテキスト・ボックスが表示され、そこでページ・ソースを変更できます(図6-11)。ここでは、ページを編集できるユーザーの制御、ページ・ラベルの追加および削除、ページの変更が行えます。ページ・ソースではWiki構文が使用されます。詳細は、6.3.3項「Wikiマークアップ」を参照してください。ページの編集が終了したら、ページの一番下の「Submit Query」をクリックします。変更内容を保存しない場合は、「Cancel」をクリックします。「Submit Query」も「Cancel」もクリックせずに、別のページにナビゲートすると(または「View」タブをクリックすると)、編集中のページがOracle WebCenter Wikiによって通常10分間ロックされます。


注意:

ページのロックやロック解除といった管理タスクの詳細は、E.3項「ページのロックおよびロック解除」を参照してください。

図6-11 Wikiページの編集

図6-11の説明が続きます
「図6-11 Wikiページの編集」の説明

6.3.2.2 ページの作成

ユーザーは、管理者が作成した既存ドメインに新しいページを作成できます。

ドメインに新しいページを作成する手順は、次のとおりです。

  1. Wikiで、左上の「All Domains」をクリックしてから、ページを作成するドメインをクリックします。

  2. 右上にある「Logout」リンクの横の「Add Page」アイコンをクリックします(図6-12)。

    図6-12 「Add Page」アイコン

    図6-12の説明が続きます
    「図6-12 「Add Page」アイコン」の説明

  3. 「Create new page」画面(図6-13)の「Page name」フィールドにページ名(MyWikiPageなど)を入力します。ページについてはWikiのネーミング規則に従ってください。ページのテンプレートを選択することもできます。


    注意:

    Wikiページのネーミング規則の詳細は、6.3.3項「Wikiマークアップ」を参照してください。

    図6-13 新しいページの作成

    図6-13の説明が続きます
    「図6-13 新しいページの作成」の説明

  4. 「Create Page」をクリックします。「Edit」ページが表示され、そこでページのコンテンツを変更できます。

6.3.3 Wikiマークアップ

Oracle WebCenter Wikiでは、ページのコンテンツを書式設定するために特殊なマークアップ言語が使用されます。この項では、よく使用される規則について説明し、使用例を示します。ページの作成と編集の一般的な情報は、6.3.2項「ページの編集および作成」を参照してください。

表6-2 一般的なWiki書式設定規則

書式設定規則 説明 構文例

ヘッダー

感嘆符(!)を使用してヘッダーを定義します。感嘆符の数でヘッダーの深さが決まります。

!Header1
!!Header2
!!!!Header4

強調

強調するテキストを次の記号で囲みます。

太字: *

斜体: #

下線: _

このマークアップは行の先頭では使用できません。

The following is*bold text*.
The following is #italicized text#.
The following is _underlined text_.

リンク

外部リンクを表示するには、URLを入力してURL(http://www.oracle.com)を表示するか、次の方法によってURL名を表示します。

[リンクの名前 | URL ]

他のWikiページへの内部リンクは次の方法で表示します。

[リンクの名前 | リンク先のWikiページ]

内部ページが存在しない場合は、Wikiによって新しいページが作成され、表示モードでページ名の横に疑問符(?)が表示されます。ユーザーが疑問符をクリックすると、ページを編集できます。

[ oracle | http://www.oracle.com ]

[ Seattle | SeattleSupportPage ]

Wikiページ名

Wikiページに名前を付けるにはキャメル表記を使用します。この表記では、MyWikiPageのように、先頭の大文字の後に小文字が続き、さらに別の大文字の後に一連の小文字が続きます。ページの別名を使用するには、次の規則を使用します。

[ 別名 | Wikiページ名 ]

[ My Page | MyPage ]

リスト

箇条書きリストはアスタリスク(*)、番号付きリストはシャープ記号(#)を行の先頭に指定します。

* bulleted item 1
* bulleted item 2

# numbered item 1
# numbered item 2

HTMLを使用して表を作成します。表の開始と終了には<table></table>タグを使用し、列には縦棒(|)を使用します。

<table width="75%" border="0">
*col1* | *col2*
Hello | world
Here | I am
</table>

イメージ

標準HTMLを使用してイメージ・ソースを定義します。

<img src="http://www.anyserver.com/image.gif"/>

6.4 WebCenterアプリケーションへのOracle WebCenter Wikiの統合

Oracle WebCenter WikiをWebCenterアプリケーション・コンポーネントに統合できます。アプリケーション・コンポーネントは、Oracle WebCenter Wikiサービスとサービスに格納されているページにアクセスします。この項では、Oracle WebCenter Wiki Webサービスを使用して、ユーザーがWikiにアクセスできるようにする方法を説明します。また、Wikiの情報にアクセスするJSR 168ポートレットの作成方法についても説明します。

この項の内容は、次のとおりです。

6.4.1 Oracle WebCenter Wiki Webサービス・インタフェース

Oracle WebCenter Wikiによって、WebCenterアプリケーションとWikiの相互作用を可能にするWebサービスが提供されます。Oracle WebCenter Wikiをインストールしたら、次のURLを使用してWebサービスのエンド・ポイントにアクセスできます。

http://localhost:port/owc_wiki/services/WikiRemoteService

注意:

このURLのhostとportの情報は、Oracle WebCenter Wikiをインストールしたコンピュータの情報です。

Oracle WebCenter Wiki Webサービスを使用すると、Wikiページとドメインにアクセスして情報やコンテンツを取得することができます。Wikiページとドメインの作成、変更および削除も行うことができます。Oracle JDeveloperを使用して、次の場所にあるWSDL定義からWebサービスのプロキシを作成できます。

http://host:port/owc_wiki/services/WikiRemoteService?WSDL

サンプル・ポートレット・コード・バンドルにはプロキシも含まれます。このプロキシは、Oracle WebCenter Wikiファイルのportlet_producer_sample.zipに含まれるweb_service_proxy.jarファイルにあります。プロキシの詳細は、portlet_producer_sample.zipファイルに含まれるJavadocを参照してください。

この項ではWebサービス・インタフェースについて説明します。Webサービス・セキュリティの詳細は、6.4.1.2項「Webサービス・セキュリティ」を参照してください。

6.4.1.1 インタフェースの定義

一部のメソッドはJavaBeansで情報を返します。表6-3に、DomainInfo BeanとPageInfo Beanの属性を示します。説明した属性のgetterメソッド(たとえばlong getCreated())を使用することもできます。

表6-3 Webサービスのデータ構造

DomainInfo Bean PageInfo Bean
String domain;
String domain;
String description;
String name;
String author;
int revision;
long created;
int views;
String startPage;
String author;

long created;

String editor;

long modified;

String viewURL;

String editURL;

表6-4表6-5に示すように、Webサービスのメソッドには、Wikiのドメインやページにアクセスしたりアクションを実行したりするメソッドが含まれます。

表6-4 ドメインに関連するメソッド

属性 メソッド
DomainInfo
getDomainInfo(String domainName, String key)
DomainInfo[]
getAllDomainInfo(String key)
void
createDomain (String domainName, String description, String startPage, String key)
void
deleteDomain(String domainName, String key)

表6-5 ページに関連するメソッド

戻り型 メソッド 説明
PageInfo
getPageInfo (String domainName, String pageName, String key)

PageInfo[]
getAllPageInfo (String domainName, String key)

void
createPage (String domainName, String pageName, String key)

void
deletePage (String domainName, String pageName, String key)

String
getPlainPage (String domainName, String pageName, String key)

Wikiマークアップ書式でページ・コンテンツを返します。

String
getRenderedPage (String domainName, String pageName, String key)

HTMLにレンダリングしてコンテンツを返します。

void
savePage (String domainName, String pageName, String content, String key)

String contentは、ページの新しいコンテンツをWikiマークアップ書式で取ります。


6.4.1.2 Webサービス・セキュリティ

すべてのOracle WebCenter Wiki Webサービス・メソッドは、未認可のアクセスから保護されています。すべてのメソッドには、認可アクセスを保証するためのString keyパラメータが含まれます。このキーは、KeyEncryptor.genkey(<username>, <passphrase>)メソッドを使用して、ユーザー名と事前定義済パスフレーズのファンクションとして生成されます。パスフレーズは、管理者がインストール後にOracle WebCenter Wikiアプリケーションで設定する任意の文字列です(6.2.2.3項「パスフレーズの生成」を参照)。Oracle WebCenter Wiki開発者は、Webサービス・インタフェースを使用してWikiにアクセスするために、このパスフレーズを認識している必要があります。


注意:

クラスKeyEncryptorは、portlet_producer_sample.zipファイル内のJavaライブラリora_wiki_sec.jarにあります。このライブラリのJavadocも同じZIPファイルに含まれています。

キーを作成する手順は、次のとおりです。

String key = KeyEncryptor.genkey(username, passphrase);

注意:

このメソッドでは、usernameはWebサービスがかわりにコールを行うユーザーの名前(たとえば、WebCenterアプリケーションにログインし、ポートレットを使用してWikiにアクセスしているユーザー)、passphraseはそのユーザーに使用させるパスワードです。

6.4.1.3 Javaプログラムの例

次のコードは、Webサービス・インタフェースにアクセスするJavaプログラムの例です。このプログラムは、Trainingドメインのすべてのページ名をリスト表示します。

package oracle.webcenter.wiki.ws.test;
import  oracle.webcenter.wiki.ws.*;
import  oracle.webcenter.wiki.security.*;

public class ListPages
{

WikiをOracle WebCenter Preconfigured OC4Jにデプロイしているため、この例ではWebサービスのエンド・ポイントをハードコードします。エンド・ポイントはパラメータ化することもできます。

  private static final String endpoint =
    "http://localhost:6688/owc_wiki/services/WikiRemoteService";

Webサービスの各メソッドは、コール元をWebサービスに対して認証する必要があります。認証は、ユーザー名と事前定義済パスフレーズで構成されます。この例では、これらの値をハードコードします。

  private static final String username = "jsmith";
  private static final String passphrase = "passphrase";

この例ではドメイン名もハードコードします。

  private static final String domain = "Training";

  public static void main(String[] args) throws Exception
    {
      try
      {

次に、Webサービスにアクセスするクライアント側プロキシを作成します。

      WikiRemoteServiceClient client =
          new WikiRemoteServiceClient();

プロキシのエンド・ポイントを、Webサービスをデプロイした実際の場所に設定します。

      client.setEndpoint(endpoint);

Webサービスの各メソッドは、セキュリティ・キーを渡してユーザーを認証し、メソッドをコールする必要があります。キーは、ユーザー名とWebサービスで構成されたパスフレーズに基づいて計算できます。

       String key = KeyEncryptor.genkey(username, passphrase);

Webサービスのプロキシを使用して、選択したドメインのすべてのページの情報を配列にフェッチします。選択したドメインが存在しない場合は、プログラムによって例外がスローされます。ドメインにページが含まれない場合は、プログラムによって空の配列が返されます。

      PageInfo[] pages = client.getAllPageInfo(domain, key);
      System.out.println("Pages in " + domain + " domain:");

getterメソッドgetName()を使用して、pages配列の各ページの名前を印刷します。

      for (int i = 0; i < pages.length; i++)
      {
        System.out.println("  " + pages[i].getName());
      }
    }
  }

例外がある場合、プログラムによってエラーが取得され出力されます。

    catch (Exception e)
    {
      System.out.println("Exception: " + e);
    }
  }

}

6.4.1.4 データ・コントロールの作成および使用

WikiをWebCenterアプリケーションに統合するには、Oracle JDeveloperのWebサービス・データ・コントロール・ウィザードを使用して、Oracle WebCenter Wiki Webサービスに基づくデータ・コントロールを作成することもできます。データ・コントロールを作成したら、Wiki操作をWebCenterアプリケーション・ページにドラッグ・アンド・ドロップすることができます。

6.4.2 サンプル・ポートレット

Oracle WebCenter Wikiには、4つのサンプルJSR 168ポートレットが含まれています。これらをWebCenterアプリケーションのページに追加すると、ユーザーがWikiの特定の操作にアクセスできるようになります。Oracle WebCenter Wikiをインストールすると、サンプル・ポートレット・プロデューサが自動的にインストールされます。ポートレット・プロデューサのテスト・ページには、次のURLを介してアクセスできます。

http://host:port/wikiproducer/info

注意:

Oracle WebCenter Wikiをデプロイした場所のホストとポートを使用します。ポートレットのソースは、Oracle WebCenter Wikiファイルのportlet_producer_sample.zipファイルに含まれています。

図6-14のようにテスト・ページが表示されます。ポートレットはOracleの拡張機能を使用してパラメータを渡すため、プロデューサをWebCenterアプリケーションに登録するときはWSRP 2.0 URLを使用します。

http://host:port/wikiproducer/portlets/wsrp2?WSDL

図6-14 サンプル・ポートレット・プロデューサのテスト・ページ

図6-14の説明が続きます
「図6-14 サンプル・ポートレット・プロデューサのテスト・ページ」の説明

6.4.2.1 ポートレット環境の設定

サンプル・ポートレットでは、Webサービス・エンドポイントの環境エントリが使用されます。

環境エントリを設定する手順は、次のとおりです。

  1. Oracle WebCenter Wikiで、Enterprise Managerの環境エントリを更新します。まず、Enterprise Managerにログインします。

  2. デプロイされているOracle WebCenter Wikiアプリケーションを探します。アプリケーションのルートがowc_wikiのように表示されるはずです。

  3. アプリケーション(たとえばowc_wiki)をクリックします。

  4. owc_wiki_producerモジュールをクリックします(図6-15)。

    図6-15 OWC_Wiki_Producerモジュール

    図6-15の説明が続きます
    「図6-15 OWC_Wiki_Producerモジュール」の説明

  5. 「管理」ページで「環境エントリ・マッピング」をクリックします。

  6. タスク/oracle/webCenter/owcWiki/portlet/webServiceEndPointを探します。

  7. 次の値をWebサービス・エンドポイントに設定します。

    http://host:port/owc_wiki/services/WikiRemoteService
    
  8. 次に、ポートレット・プロデューサのパスフレーズを、6.2.2.3項「パスフレーズの生成」で作成したパスフレーズと同じになるように更新します。

    ポートレット・プロデューサのパスフレーズを更新するには、「環境エントリ・マッピング」ページで、タスク「環境エントリ・マッピング」を探して、/oracle/webCenter/owcWiki/webServiceSecurityPassphraseの値を更新します。

  9. 6.2.2.3項「パスフレーズの生成」で入力したパスフレーズで値を更新します。デプロイ済の値を更新すると、設定した値はアプリケーションを再デプロイしても上書きされません。

図6-16 環境エントリ・マッピング

図6-16の説明が続きます
「図6-16 環境エントリ・マッピング」の説明

これでポートレットの環境が設定されたため、サンプル・ポートレットをWebCenterアプリケーションで表示できます。6.4.2.2項「サンプル・ポートレットの表示」を参照してください。

6.4.2.2 サンプル・ポートレットの表示

表6-6に、Oracle WebCenter Wikiに含まれる4つのサンプル・ポートレットを示します。

表6-6 サンプル・ポートレットの説明

ポートレット 説明

ページの情報

このポートレットは、選択したWikiページに関する情報を表示します。このポートレットをカスタマイズして、選択したページをユーザーが表示または編集できるようにすることもできます。

ドメインの作成

このポートレットを使用すると、ユーザーはWikiに新しいドメインを作成できます。

ページの作成

このポートレットを使用すると、ユーザーはWikiで既存のドメインを選択し、そのドメインに新しいページを作成できます。

ページの選択

このポートレットを使用すると、ユーザーは、Wikiで既存のドメインを選択し、既存のページを選択して新しいブラウザ・ウィンドウに表示できます。


サンプル・ポートレットを表示する手順は、次のとおりです。

  1. Oracle JDeveloperで新しいWebCenterアプリケーションを作成します。

  2. WSDLの次のURLエンドポイントを使用して、WSRPプロデューサを新しいアプリケーションに登録します。

    http://host:port/wikiproducer/portlets/wsrp2?WSDL
    

    注意:

    hostとportは、サンプル・ポートレットを含むOC4Jインスタンスのホスト・コンピュータを指します。WSRPプロデューサ登録の手順は、4.3.1.1項「WSRPポートレット・プロデューサの登録」を参照してください。

  3. WSRPプロデューサを登録したら、アプリケーション・ナビゲータに戻ります。

  4. ViewControllerプロジェクトにJSF JSPページを作成し、そのページに対してすべてのポートレット・テクノロジを選択します。

  5. これで、コンポーネント・パレットからJSF JSPページにサンプル・ポートレットをドラッグ・アンド・ドロップできるようになりました(図6-17)。

    図6-17 コンポーネント・パレット

    図6-17の説明が続きます
    「図6-17 コンポーネント・パレット」の説明

  6. 4つのポートレットをページに追加したら、ページをブラウザで実行します。図6-18および図6-19のようにページが表示されます。

    図6-18 サンプル・ポートレット: CreateDomainPortletおよびCreatePagePortlet

    図6-18の説明が続きます
    「図6-18 サンプル・ポートレット: CreateDomainPortletおよびCreatePagePortlet」の説明

    図6-19 サンプル・ポートレット: PageInfoPortletおよびSelectPagePortlet

    図6-19の説明が続きます
    「図6-19 サンプル・ポートレット: PageInfoPortletおよびSelectPagePortlet」の説明


注意:

サンプル・ポートレットが表示されないとき、場合によってはページにセキュリティを実装する必要があります。ページをOracle JDeveloperで開いているときに、「ツール」「ADFセキュリティ・ウィザード」を選択し、ウィザードのデフォルト設定を受け入れます。

アプリケーションをブラウザで実行すると、ログイン・プロンプトが表示されます。デフォルト管理者のユーザー名とパスワード(たとえばoc4jadminおよびwelcome)を入力すると、ポートレットが表示されます。


6.4.2.3 SelectPagePortlet

図6-20に示すように、このポートレットを使用すると、ユーザーがドメインを選択して、選択したドメインからページを選択できます。Oracle WebCenter Wikiは、選択されたドメインとページの名前をWebCenterページに渡します。このポートレットを使用すると、ユーザーが選択したページを容易に表示または編集することもできます。

図6-20 SelectPagePortlet

図6-20の説明が続きます
「図6-20 SelectPagePortlet」の説明

既存のドメインが1つ目のドロップダウン・リストに表示されます。現時点で選択されているドメイン内のページが2つ目のドロップダウン・リストに表示されます。ユーザーが別のドメインを選択すると、2つ目のドロップダウン・リストはリフレッシュされ、新たに選択されたドメインのページが表示されます。

2つのボタンを使用して、選択したページを新しいブラウザ・ウィンドウに開くことができます。「View」ボタンではページがWikiの表示モードで開き、「Edit」ボタンではWikiの編集モードで開きます。

このポートレットには、一般的なカスタマイズ可能ポートレット属性の他に図6-21に示すカスタマイズ可能属性があります。

図6-21 SelectPagePortletの「Customize」ページ

図6-21の説明が続きます
「図6-21 SelectPagePortletの「Customize」ページ」の説明

表6-7に、カスタマイズ可能オプションの説明を示します。

表6-7 SelectPagePortletのカスタマイズ可能オプション

カスタマイズ可能オプション 説明

Has Page Select Section

このチェック・ボックスを選択解除すると、「Page」ドロップダウン・リストが表示されません。このポートレットを使用して、ユーザーがドメインしか選択できないようにすることもできます。

Has Select Button

「Select」ボタンの表示と非表示を切り替えます。

Has View Button

「View」ボタンの表示と非表示を切り替えます。

Has Edit Button

「Edit」ボタンの表示と非表示を切り替えます。


6.4.2.4 PageInfoPortlet

図6-22に示すように、このポートレットを使用すると、ユーザーは選択したWikiページに関する情報を表示できます。

図6-22 PageInfoPortlet

図6-22の説明が続きます
「図6-22 PageInfoPortlet」の説明

ページについて表示される情報には、ドメインとページの名前、ページを作成したユーザー、最後に編集したユーザー、およびページ作成日が含まれます。「Revision」には、作成後にユーザーがページを変更した回数が表示されます。「Views」には、作成後にユーザーがページを表示した回数が表示されます。

「View」ボタンまたは「Edit」ボタンをクリックすると、同じブラウザ・ウィンドウにWikiのページが開きます。

このポートレットには、一般的なカスタマイズ可能ポートレット属性の他に図6-23に示すカスタマイズ可能属性があります。

図6-23 PageInfoPortletの「Customize」ページ

図6-23の説明が続きます
「図6-23 PageInfoPortletの「Customize」ページ」の説明

表6-8に、カスタマイズ可能な属性の説明を示します。

表6-8 PageInfoPortletのカスタマイズ可能オプション

カスタマイズ可能な属性 説明

Has Information Section

このチェック・ボックスを選択解除すると、ページの情報は表示されません。ドメインとページの名前のみが表示されます。

Has View Button

「View」ボタンの表示と非表示を切り替えます。

Has Edit Button

「Edit」ボタンの表示と非表示を切り替えます。


6.4.2.5 CreateDomainPortlet

図6-24に示すように、このポートレットを使用するとユーザーが新しいドメインを作成できます。

図6-24 CreateDomainPortlet

図6-24の説明が続きます
「図6-24 CreateDomainPortlet」の説明

「Existing Domains」ドロップダウン・リストには、Wikiにすでに存在するドメインが表示されます。ユーザーは、このポートレットで新しいドメインの名前、説明および開始ページを入力できます。「Create」ボタンをクリックすると新しいドメインが作成されます。ポートレット内で確認メッセージまたはエラー・メッセージが表示され、Oracle WebCenter Wikiによってページが作成されたかどうかがユーザーに知らされます。

このポートレットには、追加のカスタマイズ可能属性はありません。


注意:

このサンプル・ポートレットが表示されないとき、場合によってはページにセキュリティを実装する必要があります。ページをOracle JDeveloperで開いているときに、「ツール」「ADFセキュリティ・ウィザード」を選択し、ウィザードのデフォルト設定を受け入れます。

アプリケーションをブラウザで実行すると、ログイン・プロンプトが表示されます。デフォルト管理者のユーザー名とパスワード(たとえばoc4jadminおよびwelcome)を入力すると、ポートレットが表示されます。


6.4.2.6 CreatePagePortlet

図6-25に示すように、CreatePagePortletを使用すると、ユーザーがドメインを選択して、そのドメインに新しいページを作成できます。

図6-25 CreatePagePortlet

図6-25の説明が続きます
「図6-25 CreatePagePortlet」の説明

ユーザーは、ドメインを選択して、そのドメインの既存のページを表示できます。その後、「New Page」フィールドに新しいページ名を入力して、「Create」ボタンをクリックするとページを作成できます。ポートレット内で確認メッセージまたはエラー・メッセージが表示され、Oracle WebCenter Wikiによってページが作成されたかどうかがユーザーに知らされます。

このポートレットには、追加のカスタマイズ可能属性はありません。


注意:

このサンプル・ポートレットが表示されないとき、場合によってはページにセキュリティを実装する必要があります。ページをOracle JDeveloperで開いているときに、「ツール」「ADFセキュリティ・ウィザード」を選択し、ウィザードのデフォルト設定を受け入れます。

アプリケーションをブラウザで実行すると、ログイン・プロンプトが表示されます。デフォルト管理者のユーザー名とパスワード(たとえばoc4jadminおよびwelcome)を入力すると、ポートレットが表示されます。


6.4.3 ポートレットの作成

この項では、Webサービス・インタフェースを使用してWiki機能にアクセスするポートレットの作成方法を説明します。Webサービス・インタフェースの詳細は、6.4.1項「Oracle WebCenter Wiki Webサービス・インタフェース」を参照してください。作成したポートレットはWebCenterアプリケーション・ページに追加できます。

サンプル・ポートレットには、Wikiの選択されたページについてドメイン名、ページ名、作成者名、最終更新日付などの情報を示すPageInfoPortletが含まれています。次のコードを使用して、Oracle WebCenter Wiki Webサービス・インタフェースを使用するポートレットを作成する方法を説明します。このポートレットは、サンプル・ファイルのPageInfoPortletの簡易版です。

このポートレットは、2つのパラメータdomainpageを受け取り、それらの値に基づいてページの情報を表示します。また、ポートレットには2つのボタンがあり、これらを使用すると、選択したページをWikiユーザー・インタフェースで表示または編集できます。

この例のJSPは、このJSR 168ポートレットの表示モードを実装しています。強調表示されたコードは、Wikiをデプロイしている場所のローカル・ホストとポートの値で置き換えてください。


注意:

この例では、Webサービス・エンドポイントはendpoint文字列変数にハードコードしています。複雑なポートレットでは、カスタマイズ可能な属性のいずれかなど、別の値を使用できます。

 <%@ page contentType="text/html"
     pageEncoding="windows-1252"
     import="javax.portlet.*,
             java.util.*,
             java.text.*, oracle.webcenter.wiki.security.KeyEncryptor,
     oracle.webcenter.wiki.ws.*"
 %>
 <%@ taglib uri="http://java.sun.com/portlet" prefix="portlet"%>
 <portlet:defineObjects/>

 <%
   String endpoint = http://localhost:6688/owc_wiki/services/WikiRemoteService

ここで、domainパラメータとpageパラメータの値を取得します。

   String domainName = renderRequest.getParameter("domain");
   if ((domainName != null) && (domainName.length() == 0))
     domainName = null;
   String pageName = renderRequest.getParameter("page");
   if ((pageName != null) && (pageName.length() == 0))
     pageName = null;

次に、ユーザーがいずれかのパラメータの値を指定しない場合のエラー・メッセージを指定します。

   if ((domainName == null) || (pageName == null))
   {
 %>
 <i>No page selected for display!</i>

Date書式を使用して、Dateデータ型を現行ロケールを使用して標準詳細レベルで表示します。

 <%
   }
   else
   {
     DateFormat df =
       DateFormat.getDateTimeInstance(DateFormat.MEDIUM,
                                      DateFormat.MEDIUM,
                                      renderRequest.getLocale());

プロキシ・オブジェクトを作成し、エンドポイントを設定します。

     WikiServiceSoapHttpPortClient client =
       new WikiServiceSoapHttpPortClient();
     client.setEndpoint(endpoint);

管理者が生成したパスフレーズ(6.2.2.3項「パスフレーズの生成」を参照)を使用してセキュアなWebサービス・メソッドにアクセスし、クライアント・プロキシのgetPageInfo()メソッドを使用して、選択したページの属性を含むPageInfo JavaBeanを取得します。

     String username = "jsmith";
     String passphrase = "passphrase";

     KeyEncryptor.genkey(username, passphrase);

     PageInfo info = client.getPageInfo(domainName, pageName, key);

getPageInfoメソッドがNULL値を返す場合、選択したページは存在しません。エラー・メッセージが表示されます。

     if (info == null)
     {
 %>
 <b>No such page:</b> <%= domainName %> /  <%= pageName %>
 <%
     }

getPageInfoメソッドが値を返す場合、ドメイン名とページ名が表示されます。

     else
     {
 %>
   <table>
     <tr><td valign="top">
       <table>
         <tr class="portlet-table-text">
           <td align="left">Page</td>
           <td align="left"><%= domainName %>/<%= pageName %></td>
         </tr>

infoオブジェクトは、ページの属性を保持するJavaBeanです。getterメソッドを使用して個々の属性にアクセスできます。次のinfo.getAuthor()オブジェクトではページの作成者が返されます。

         <tr class="portlet-table-text">
           <td align="left">Created by</td>
           <td align="left"><%= info.getAuthor() %></td>
         </tr>

同じく、その他のgetterメソッドを使用してその他の属性を取得できます。

         <tr class="portlet-table-text">
           <td align="left">Last Author</td>
           <td align="left"><%= info.getEditor() %></td>
         </tr>

作成日など日付情報の書式を設定してから表示します。

         <tr class="portlet-table-text">
           <td align="left">Created at</td>
           <td align="left"><%= df.format(new Date(info.getCreated().getTime())) %></td>
         </tr>
         <tr class="portlet-table-text">
           <td align="left">Edited at</td>
           <td align="left"><%= df.format(new Date(info.getModified().getTime())) %></td>
         </tr>
         <tr class="portlet-table-text">
           <td align="left">Revision</td>
           <td align="left"><%= info.getRevision() %></td>
         </tr>
         <tr class="portlet-table-text">
           <td align="left">Views</td>
           <td align="left"><%= info.getViews() %></td>
         </tr>
       </table>

次に、ユーザーがWikiのページを表示または編集するための2つのボタンを作成します。どちらのボタンにも<form>タグを指定します。これらのボタンは、info Beanからform要素のアクションURLを受け取ります。

     </td>
     <td align="left" valign="top">
   <form action="<%= info.getViewURL() %>" method="GET">
     <input type="submit" class="portlet-form-button" value="View"
   </form>
   <form action="<%= info.getEditURL() %>" method="GET">
     <input type="submit" class="portlet-form-button" value="Edit"
   </form>
     </td></tr>
   </table>
 <%
     }
   }
 %>