この章では、WebCenterアプリケーションにOracle WebCenter Wikiを統合する方法を説明します。また、Wiki、Wiki構文、およびWebCenterアプリケーションでのOracle WebCenter Wiki Webサービスの使用方法について説明します。
Oracle WebCenter Wikiの管理オプションは、付録E「Oracle WebCenter 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機能をアプリケーションに埋め込むことができます。
この項では、Oracle WebCenter Suite環境にWikiをインストールして構成する方法について説明します。
Oracle WebCenter Wikiをインストールする手順は、次のとおりです。
Application Server Controlに管理者としてログインします。
Oracle Application Serverインスタンスをクリックして、そのインスタンスのアプリケーション・サーバー・ページに移動します。
Oracle WebCenter Wikiを含めるために新しいOC4Jインスタンスを作成することをお薦めします。推奨ではありませんが、既存のOC4Jインスタンスを使用することもできます。新しいOC4Jインスタンスを作成するには、「OC4Jインスタンスの作成」をクリックします(図6-1)。
図6-1 Application Server Controlのアプリケーション・サーバー・ページ
新しいOC4Jインスタンスに関して値を入力します。「作成後にこのOC4Jインスタンスを起動します。」を選択してから、「作成」をクリックします。
18.3項「ポートレット実行のためのアプリケーション・サーバーまたはスタンドアロンOC4Jの構成」の手順に従って、ポートレットを実行するようにOC4Jインスタンスを構成します。
WikiをデプロイするOC4Jインスタンスの名前をクリックします。「ホーム」タブが表示されます(図6-2)。
「アプリケーション」タブをクリックします(図6-3)。
「デプロイ」をクリックします。
EARファイルの場所(ローカルまたはホスト)を選択し、パスを指定します(図6-4)。
ヒント: Oracle WebCenter Wiki EARファイルはowc_wiki.ear です。 |
「新規デプロイ・プランを自動的に作成します。」を選択します(図6-4)。
「次へ」をクリックします。EARファイルがローカルにある場合、サーバーにアップロードされるまでに数分かかることがあります。
「アプリケーション名」(たとえばowc_wiki
)を入力し、「コンテキスト・ルート」もアプリケーション名に対応するように設定されていることを確認します。アプリケーションにアクセスするときはコンテキスト・ルートを使用します(図6-5)。
「次へ」をクリックします。
デプロイ設定を確認します(図6-6)。
「デプロイ」をクリックします。デプロイが正常に終了すると、確認メッセージが表示されます。デプロイが失敗した場合は、ログを調べてデプロイ設定が正しいことを確認します。
注意: Oracle WebCenter Wikiには、特定のポート(1475)で実行するHSQLデータベースが含まれます。このポートが使用できない場合は、インストール後にbeans.xml ファイルでポートを変更できます。このファイルはOC4J_HOME /applications/ application_root /owc_wiki/WEB-INF/classes にあります。 |
「戻る」をクリックします。OC4Jインスタンスでアプリケーションが実行しているのを確認できます(図6-7)。
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のクラスタ化構成」を参照してください。
注意: 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 )を参照してください。 |
この項の内容は、次のとおりです。
セキュリティ・ロール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に手動で変更することができます。
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=""
Oracle WebCenter Wikiをデプロイしたら、パスフレーズを生成する必要があります。パスフレーズは、Oracle WebCenter Wiki Webサービスでのメソッドのコールや、サンプル・ポートレットの実行のためにWiki開発者が使用します。使用方法は、6.4.1.2項「Webサービス・セキュリティ」で説明します。
注意: Oracle WebCenter Wiki Webサービスを使用する予定がない場合、この項の内容は必要ありません。 |
パラメータ・キーを生成する手順は、次のとおりです。
Enterprise Managerにログインします。
Oracle WebCenter WikiをインストールしたOC4Jインスタンスで、デプロイしたOracle WebCenter Wikiアプリケーションを探します。アプリケーションのルートは、owc_wiki
のように表示されるはずです。
アプリケーションをクリックします。
owc_wikiモジュールをクリックします。
「管理」タブをクリックします。
「管理」ページで「環境エントリ・マッピング」をクリックします。
タスク「環境エントリ・マッピング」を探して、/oracle/webCenter/owcWiki/webServiceSecurityPassphrase
の値を更新します。
新しいパスフレーズで値を更新し、「OK」をクリックします(作成するパスフレーズとして任意の値を使用できます)。デプロイ済の値を更新すると、設定した値はアプリケーションを再デプロイしても上書きされません。
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
に格納されます。この場所のフォルダがドメイン、各フォルダ内のファイルがページです。
Oracle WebCenter Wikiを使用すると、ユーザーはページの作成、編集および変更を行うことができ、管理タスクを実行する必要はありません。詳細は、付録E「Oracle WebCenter Wikiの管理」を参照してください。Oracle WebCenter Wikiでは、多数の標準Wiki機能(ページへの添付ファイルの追加、ブックマーク、検索など)も提供されます。
この項の内容は、次のとおりです。
Oracle WebCenter Wikiでは、コンテンツはドメインとページに分類されます。Wikiユーザーはページの作成と編集を行うことができます。管理者は、それらのページを含むドメインを作成します。管理者は各ドメインのメニューを作成することもできます。メニューによってユーザーがドメインのページやその他の組込み機能(ポピュラー・ページなど)に素早くアクセスできるようになります。Wikiでは、作成者や変更日時などを含めてページのすべてのバージョンが管理されます。
この項では、Oracle WebCenter Wikiで既存のページを編集する方法と新しいページを作成する方法について説明します。
Wikiにアクセスするには、次のURLにアクセスしてログインします。
http://host:port/owc_wiki
注意: hostとportは、Oracle WebCenter Wikiをインストールしたホストとポートです。以前に認証されていない場合は、ログイン・プロンプトが表示され、ユーザー名とパスワードを入力することができます。 |
右上にあるリンクを使用して、Wikiの別の領域、つまりブックマークや管理にナビゲートできます。ブックマークしたページの表示や、Wikiの管理(管理者としてログインした場合)を行うことができます。
ユーザーは、ページの表示、編集、情報確認、添付ファイル追加といったタスクを実行できます。これらのタスクを実行するには、該当するタブをクリックします(図6-10)。
現行ページを編集するには、「Edit」タブをクリックします。「Edit」ページにテキスト・ボックスが表示され、そこでページ・ソースを変更できます(図6-11)。ここでは、ページを編集できるユーザーの制御、ページ・ラベルの追加および削除、ページの変更が行えます。ページ・ソースではWiki構文が使用されます。詳細は、6.3.3項「Wikiマークアップ」を参照してください。ページの編集が終了したら、ページの一番下の「Submit Query」をクリックします。変更内容を保存しない場合は、「Cancel」をクリックします。「Submit Query」も「Cancel」もクリックせずに、別のページにナビゲートすると(または「View」タブをクリックすると)、編集中のページがOracle WebCenter Wikiによって通常10分間ロックされます。
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"/> |
Oracle WebCenter WikiをWebCenterアプリケーション・コンポーネントに統合できます。アプリケーション・コンポーネントは、Oracle WebCenter Wikiサービスとサービスに格納されているページにアクセスします。この項では、Oracle WebCenter Wiki Webサービスを使用して、ユーザーがWikiにアクセスできるようにする方法を説明します。また、Wikiの情報にアクセスするJSR 168ポートレットの作成方法についても説明します。
この項の内容は、次のとおりです。
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サービス・セキュリティ」を参照してください。
一部のメソッドは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マークアップ書式で取ります。 |
すべての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はそのユーザーに使用させるパスワードです。 |
次のコードは、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); } }
}
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
サンプル・ポートレットでは、Webサービス・エンドポイントの環境エントリが使用されます。
環境エントリを設定する手順は、次のとおりです。
Oracle WebCenter Wikiで、Enterprise Managerの環境エントリを更新します。まず、Enterprise Managerにログインします。
デプロイされているOracle WebCenter Wikiアプリケーションを探します。アプリケーションのルートがowc_wiki
のように表示されるはずです。
アプリケーション(たとえばowc_wiki)をクリックします。
owc_wiki_producerモジュールをクリックします(図6-15)。
「管理」ページで「環境エントリ・マッピング」をクリックします。
タスク/oracle/webCenter/owcWiki/portlet/webServiceEndPoint
を探します。
次の値をWebサービス・エンドポイントに設定します。
http://host:port/owc_wiki/services/WikiRemoteService
次に、ポートレット・プロデューサのパスフレーズを、6.2.2.3項「パスフレーズの生成」で作成したパスフレーズと同じになるように更新します。
ポートレット・プロデューサのパスフレーズを更新するには、「環境エントリ・マッピング」ページで、タスク「環境エントリ・マッピング」を探して、/oracle/webCenter/owcWiki/webServiceSecurityPassphrase
の値を更新します。
6.2.2.3項「パスフレーズの生成」で入力したパスフレーズで値を更新します。デプロイ済の値を更新すると、設定した値はアプリケーションを再デプロイしても上書きされません。
これでポートレットの環境が設定されたため、サンプル・ポートレットをWebCenterアプリケーションで表示できます。6.4.2.2項「サンプル・ポートレットの表示」を参照してください。
表6-6に、Oracle WebCenter Wikiに含まれる4つのサンプル・ポートレットを示します。
表6-6 サンプル・ポートレットの説明
ポートレット | 説明 |
---|---|
ページの情報 |
このポートレットは、選択したWikiページに関する情報を表示します。このポートレットをカスタマイズして、選択したページをユーザーが表示または編集できるようにすることもできます。 |
ドメインの作成 |
このポートレットを使用すると、ユーザーはWikiに新しいドメインを作成できます。 |
ページの作成 |
このポートレットを使用すると、ユーザーはWikiで既存のドメインを選択し、そのドメインに新しいページを作成できます。 |
ページの選択 |
このポートレットを使用すると、ユーザーは、Wikiで既存のドメインを選択し、既存のページを選択して新しいブラウザ・ウィンドウに表示できます。 |
サンプル・ポートレットを表示する手順は、次のとおりです。
Oracle JDeveloperで新しいWebCenterアプリケーションを作成します。
WSDLの次のURLエンドポイントを使用して、WSRPプロデューサを新しいアプリケーションに登録します。
http://host:port/wikiproducer/portlets/wsrp2?WSDL
注意: hostとportは、サンプル・ポートレットを含むOC4Jインスタンスのホスト・コンピュータを指します。WSRPプロデューサ登録の手順は、4.3.1.1項「WSRPポートレット・プロデューサの登録」を参照してください。 |
WSRPプロデューサを登録したら、アプリケーション・ナビゲータに戻ります。
ViewControllerプロジェクトにJSF JSPページを作成し、そのページに対してすべてのポートレット・テクノロジを選択します。
これで、コンポーネント・パレットからJSF JSPページにサンプル・ポートレットをドラッグ・アンド・ドロップできるようになりました(図6-17)。
4つのポートレットをページに追加したら、ページをブラウザで実行します。図6-18および図6-19のようにページが表示されます。
図6-18 サンプル・ポートレット: CreateDomainPortletおよびCreatePagePortlet
図6-19 サンプル・ポートレット: PageInfoPortletおよびSelectPagePortlet
注意: サンプル・ポートレットが表示されないとき、場合によってはページにセキュリティを実装する必要があります。ページをOracle JDeveloperで開いているときに、「ツール」→「ADFセキュリティ・ウィザード」を選択し、ウィザードのデフォルト設定を受け入れます。アプリケーションをブラウザで実行すると、ログイン・プロンプトが表示されます。デフォルト管理者のユーザー名とパスワード(たとえば |
図6-20に示すように、このポートレットを使用すると、ユーザーがドメインを選択して、選択したドメインからページを選択できます。Oracle WebCenter Wikiは、選択されたドメインとページの名前をWebCenterページに渡します。このポートレットを使用すると、ユーザーが選択したページを容易に表示または編集することもできます。
既存のドメインが1つ目のドロップダウン・リストに表示されます。現時点で選択されているドメイン内のページが2つ目のドロップダウン・リストに表示されます。ユーザーが別のドメインを選択すると、2つ目のドロップダウン・リストはリフレッシュされ、新たに選択されたドメインのページが表示されます。
2つのボタンを使用して、選択したページを新しいブラウザ・ウィンドウに開くことができます。「View」ボタンではページがWikiの表示モードで開き、「Edit」ボタンではWikiの編集モードで開きます。
このポートレットには、一般的なカスタマイズ可能ポートレット属性の他に図6-21に示すカスタマイズ可能属性があります。
表6-7に、カスタマイズ可能オプションの説明を示します。
図6-22に示すように、このポートレットを使用すると、ユーザーは選択したWikiページに関する情報を表示できます。
ページについて表示される情報には、ドメインとページの名前、ページを作成したユーザー、最後に編集したユーザー、およびページ作成日が含まれます。「Revision」には、作成後にユーザーがページを変更した回数が表示されます。「Views」には、作成後にユーザーがページを表示した回数が表示されます。
「View」ボタンまたは「Edit」ボタンをクリックすると、同じブラウザ・ウィンドウにWikiのページが開きます。
このポートレットには、一般的なカスタマイズ可能ポートレット属性の他に図6-23に示すカスタマイズ可能属性があります。
表6-8に、カスタマイズ可能な属性の説明を示します。
図6-24に示すように、このポートレットを使用するとユーザーが新しいドメインを作成できます。
「Existing Domains」ドロップダウン・リストには、Wikiにすでに存在するドメインが表示されます。ユーザーは、このポートレットで新しいドメインの名前、説明および開始ページを入力できます。「Create」ボタンをクリックすると新しいドメインが作成されます。ポートレット内で確認メッセージまたはエラー・メッセージが表示され、Oracle WebCenter Wikiによってページが作成されたかどうかがユーザーに知らされます。
このポートレットには、追加のカスタマイズ可能属性はありません。
注意: このサンプル・ポートレットが表示されないとき、場合によってはページにセキュリティを実装する必要があります。ページをOracle JDeveloperで開いているときに、「ツール」→「ADFセキュリティ・ウィザード」を選択し、ウィザードのデフォルト設定を受け入れます。アプリケーションをブラウザで実行すると、ログイン・プロンプトが表示されます。デフォルト管理者のユーザー名とパスワード(たとえば |
図6-25に示すように、CreatePagePortletを使用すると、ユーザーがドメインを選択して、そのドメインに新しいページを作成できます。
ユーザーは、ドメインを選択して、そのドメインの既存のページを表示できます。その後、「New Page」フィールドに新しいページ名を入力して、「Create」ボタンをクリックするとページを作成できます。ポートレット内で確認メッセージまたはエラー・メッセージが表示され、Oracle WebCenter Wikiによってページが作成されたかどうかがユーザーに知らされます。
このポートレットには、追加のカスタマイズ可能属性はありません。
注意: このサンプル・ポートレットが表示されないとき、場合によってはページにセキュリティを実装する必要があります。ページをOracle JDeveloperで開いているときに、「ツール」→「ADFセキュリティ・ウィザード」を選択し、ウィザードのデフォルト設定を受け入れます。アプリケーションをブラウザで実行すると、ログイン・プロンプトが表示されます。デフォルト管理者のユーザー名とパスワード(たとえば |
この項では、Webサービス・インタフェースを使用してWiki機能にアクセスするポートレットの作成方法を説明します。Webサービス・インタフェースの詳細は、6.4.1項「Oracle WebCenter Wiki Webサービス・インタフェース」を参照してください。作成したポートレットはWebCenterアプリケーション・ページに追加できます。
サンプル・ポートレットには、Wikiの選択されたページについてドメイン名、ページ名、作成者名、最終更新日付などの情報を示すPageInfoPortletが含まれています。次のコードを使用して、Oracle WebCenter Wiki Webサービス・インタフェースを使用するポートレットを作成する方法を説明します。このポートレットは、サンプル・ファイルのPageInfoPortletの簡易版です。
このポートレットは、2つのパラメータdomain
とpage
を受け取り、それらの値に基づいてページの情報を表示します。また、ポートレットには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> <% } } %>