BEA ホーム | 製品 | デベロッパ・センタ | support | askBEA
 ドキュメントのダウンロード   サイト マップ   用語集 
検索

アダプタの開発

 前 次 目次 索引 PDFで表示  

設計時 GUI の開発

ADK の設計時フレームワークは、アダプタ ユーザがアプリケーション ビューの定義、デプロイ、およびテストのための Web ベースの GUI を作成するためのツールを提供します。各アダプタには EIS 固有の機能がありますが、アプリケーション ビューをデプロイするための GUI は、すべてのアダプタで必要です。設計時フレームワークでは、主に以下のコンポーネントを使用して、このような GUI の作成やデプロイメントの作業を最小限に抑えることができます。

この章の内容は以下のとおりです。

 


設計時フォーム処理の概要

Java サーブレットと JSP を組み合わせることにより、さまざまな方法でフォームを処理できます。いずれの方法でフォームを処理する場合でも、以下の基本的な必要条件が適用されます。

フォーム処理クラス

Web アプリケーションで使用する各フォームに対してすべてのフォーム処理機能を実装するのは、単調であると同時に、エラーの原因になりやすいプロセスです。ADK 設計時フレームワークでは、「モデル/ビュー/コントローラ(MVC)」パラダイムによって、このプロセスが簡略化されています。このパラダイムでは、以下の 5 つのクラスが使用されます。

RequestHandler

com.bea.web.RequestHandler

このクラスにより HTTP 要求処理ロジックが提供されます。このクラスは、MVC ベース メカニズムのモデル コンポーネントです。RequestHandler オブジェクトは ControllerServlet によってインスタンス化され、HTTP セッション中に handler というキーの下に保存されます。ADKには com.bea.adapter.web.AbstractDesignTimeRequestHandler というクラスがあります。この抽象基本クラスにより、アプリケーション ビューをデプロイする際にすべてのアダプタに共通して必要となる機能が実装されます。アダプタまたは EIS 固有のロジックを定義するには、このクラスを拡張する必要があります。

ControllerServlet

com.bea.web.ControllerServlet

このクラスは HTTP 要求を受け取ると、要求中の各フィールド値の有効性を検証し、要求の処理を RequestHandler に委託します。また、表示するページを決定します。ControllerServlet は Java Reflection を使って、RequestHandler で呼び出すメソッドを特定します。ControllerServlet はフォーム処理ロジックを実装するメソッド名を指定するために、doAction という HTTP 要求パラメータを探します。このパラメータがなければ、ControllerServletRequestHandler でメソッドを呼び出しません。

ControllerServlet は、Web アプリケーションに合わせて web.xml ファイルでコンフィグレーションされます。ControllerServlet は、RequestHandler で実行するメソッドに HTTP 要求を委託します。ControllerServlet を使用する場合、コードを指定する必要はありません。ただし、37 ページの表 8-5 に示す初期パラメータを指定する必要があります。

ActionResult

com.bea.web.ActionResult

ActionResult では、要求の処理結果がカプセル化されます。また、ControllerServlet には、次に表示するページを決定するための情報が提供されます。

Word と子孫クラス

com.bea.web.validation.Word

Web アプリケーションのすべてフィールドについて、その有効性を一定の範囲で検証する必要があります。com.bea.web.validation.Word クラスおよびその子孫オブジェクトにより、フォーム中の各フィールドの有効性を検証するためのロジックが提供されます。無効なフィールドがあると、Word オブジェクトはメッセージ バンドルを使用して、該当するフィールドに応じてインターナショナライズまたはローカライズされたエラー メッセージを検索します。ADK では、表 8-1 に示すカスタム バリデータが提供されます。

表8-1 Word オブジェクトのカスタム バリデータ

バリデータ

フィールドに対する値の決定

Integer

指定された範囲内の整数値であるかどうかを判断する。

Float/Double

指定された範囲内の浮動小数点数になっているかどうかを判断する。

Identifier

有効な Java 識別子であるかどうかを判断する。

Perl 5 Regular Expression

Perl 5 の正規表現に一致するかどうかを判断する。

URL

(ユーザにより入力されたものが)有効な URL であるかどうかを判断する。

Email

(ユーザにより入力された値が)有効な電子メール アドレスかどうかを判断する。

Date

(ユーザによって入力された値が)指定の日付/時間フォーマットに従っており、有効な日時になっているかどうかを判断する。


 

AbstractInputTagSupport と子孫クラス

com.bea.web.tag.AbstractInputTagSupport

Web ツールキットで提供されるタグ クラスには以下の機能があります。

発行タグ

これ以外に、ADK では次のような発行タグを使用できます。

<adk:submit name='xyz_submit' doAction='xyz'/>

このタグにより、doAction パラメータが要求中の ControllerServlet に送られます。この結果、ControllerServlet から登録済の RequestHandlerxyz() メソッドが呼び出されます。

フォーム処理シーケンス

この節では、フォームを処理する順序について説明します。

前提条件

フォームを処理するための前提条件は、以下のとおりです。

  1. カスタム ADK 入力タグを使用した JSP が HTTP 応答オブジェクトに書き込まれるとき、このタグにより com.bea.web.validation.Word のインスタンスがオブジェクトによって初期化され、入力フィールド名をキーとして、Web アプリケーション スコープにこのインスタンスが格納されること。このようなタグにより、ControllerServlet で検証オブジェクトが使えるようになるため、まず HTTP 要求を大まかに検証してから、RequestHandler に要求を出すことができます。次にその例を示します。
    <adk:int name='age' minInclusive='1' maxInclusive='120' required='true'/>

  2. JSP エンジンが com.bea.web.tag.IntegerTagSupport のインスタンスで doStartTag() メソッドを呼び出した時点で、このタグの HTML が生成されること。IntegerTagSupport インスタンスにより、com.bea.web.validation.IntegerWord の新しいインスタンスが作成され、これがキー age に基づいて Web アプリケーション スコープに追加されます。また、ControllerServlet では、対応する ServletContext から IntegerWord インスタンスを検索できます。検証では、年齢に送られた値が 1 以上、かつ 120 以下であることが確認されます。

  3. HTML フォームでは、doAction という非表示フィールドを発行する必要があります。このフィールドの値は、ControllerServlet がフォーム処理を実行する RequestHandler 上のメソッドを特定するときに使用されます。

これら前提条件に従うと、リスト8-1 のような JSP フォームが表示されます。

コード リスト 8-1 JSP サンプル フォーム

<form method='POST' action='controller'>
Age: <adk:int name='age' minInclusive='1' maxInclusive='120'
required='true'/>
<adk:submit name='processAge_submit' doAction='processAge'/>
</form>

シーケンスの手順

フォーム処理の実行方法を、順を追って次のダイアグラムに示します。

図8-1 UI フォーム処理


 

シーケンスは次のとおりです。

  1. ユーザが、以下の内容のフォームを発行します。age=10, doAction=processAge.

  2. ControllerServlet が HTTP 要求から年齢フィールドのデータを読み込みます。

  3. ControllerServletage をキーとして使用して、ServletContext から com.bea.web.validation.Word を検索します。このオブジェクトは、com.bea.web.validation.IntegerWord のインスタンスです。

  4. ControllerServletWord インスタンスで validate() メソッドを呼び出し、パラメータとして 10 を渡します。

  5. Word インスタンスにより、この値 10 が 1 以上 120 以下の値であることが判断されます。

  6. ControllerServlet がセッションから RequestHandler を検索、または作成して、handler としてこれをセッションに追加します。

  7. ControllerServlet は、Java Reflection API を使用して、processAge() を探し、RequestHandler でこのメソッドを呼び出します。このメソッドが存在しない場合は、例外が生成されます。メソッドのシグネチャは、次のとおりです。
    public ActionResult processAge(HttpServletRequest request) throws Exception

  8. RequestHandler は、フォームの入力データを処理した後、ActionResult オブジェクトを返して処理の結果を示します。ActionResult には、ControllerServlet が次に表示するページを判断するための情報が格納されます。次のページの情報には、Web アプリケーション内に表示する別の JSP や HTML のページの名前などがあります。たとえば thanks により、thanks.jsp ページが表示されます。

  9. ActionResult が正常に実行されると、ControllerServlet により HTTP 応答 が Web アプリケーションの表示ページにリダイレクトされます。ADK では、表示ページは通常、display.jsp となります。

  10. display.jsp ページには、content パラメータ(たとえば、thanks.jsp)により指定される JSP があります。これにより、JSP がユーザに表示されます。

 


設計時 GUI の機能

設計時 GUI の開発では、実行時アダプタを開発する場合とは異なる独自の機能を使用します。この節では、設計時 GUI の機能について説明します。

Java Server Pages

設計時 GUI は、一連の Java Server Pages (JSP) で構成されます。JSP とは、特定のトランザクションを開始する目的で Java サーブレットを呼び出すための HTML ページのことです。ユーザ側から見た JSP は、通常の Web ページと変わりません。

設計時 GUI を構成する JSP を以下の表に示します。

表8-2 設計時 GUI JSP

ファイル名

説明

display.jsp

アダプタ ホームページとも呼ばれる表示ページ。このページには、ルック & フィール を作成するのに必要な HTML が表示される。

login.jsp

アダプタの設計時 GUI ログイン ページ

confconn.jsp

[Confirm Connection] ページは、EIS の接続パラメータを指定するためのフォーム。

appvwadmin.jsp

[Application View Administration] ページには、アンデプロイされたアプリケーション ビューの概要が表示される。

addevent.jsp

[Add Event] ページではイベントをアプリケーション ビューに追加できる。

addservc.jsp

[Add Service] ページではサービスをアプリケーション ビューに追加できる。

edtevent.jsp

[Edit Event] ページでは必要に応じてユーザがイベントを編集できる。

edtservc.jsp

[Edit Service] ページでは必要に応じてユーザがサービスを編集できる。

depappvw.jsp

[Deploy Application View] ページでは、ユーザがデプロイメント プロパティを指定できる。


 

これらの JSP の実装方法については、手順 2 : ページ フローの定義を参照してください。

JSP テンプレート

テンプレートとは、HTTP 要求で指定するパラメータに基づいて Java サーブレットが動的に生成する HTML ページのことです。テンプレートを使用することにより、Web アプリケーションで使用するカスタム ページやカスタム HTML の量を最小限に抑えることができます。

設計時フレームワークの JSP テンプレートを使用すると、アダプタの新しいアプリケーション ビューを定義、デプロイ、およびテストするための Web アプリケーションを効率的に作成できます。ADK のテンプレートでは、アダプタの開発者向けに次の 3 つの利点を提供します。

ADK で提供される JSP テンプレートのリストについては、JSP テンプレートを参照してください。

JSP タグの ADK ライブラリ

ADK で提供される JSP タグ ライブラリを使用することにより、使いやすい HTML フォームの作成が容易になります。アダプタ ページを開発する際、HTML フォーム入力コンポーネントのカスタム タグを使用して、検証メカニズムへシームレスにリンクできます。ADK が提供するカスタム タグについて、以下の表に示します。

表8-3 ADK JSP タグ

タグ

説明

adk:check box

フォームを表示するときに、チェック ボックスのフォーム フィールドをチェックする必要があるかどうかを決定する。(このタグはデータ検証を実行しない。)

adk:content

メッセージ バンドル中の特定のメッセージにアクセスする。

adk:date

日付値が特定のフォーマットに従って入力されているか検証する。

adk:double

2 バイト値が入力されているか検証する。

adk:email

有効な電子メール アドレス(複数も可)が入力されているかを検証する。

adk:float

浮動小数点の値が入力されているか検証する。

adk:identifier

有効な Java の識別子が入力されているか検証する。

adk:int

整数値が入力されているか検証する。

adk:label

メッセージ バンドルからラベルを表示する。

adk:password

ユーザが入力したテキスト フィールドと Perl 5 の正規表現を照合して、入力にアスタリスク(*)を付ける。

adk:submit

フォームを検証メカニズムにリンクする。

adk:text

入力値と Perl 5 の正規表現を照合する。

adk:textarea

入力されたテキスト領域と Perl 5 の正規表現を照合する。

adk:url

有効な URL が入力されているか検証する。


 

JSP タグの属性

表 8-4 に記載されている属性を使用して JSP タグをさらにカスタマイズできます。

表8-4 JSPタグの属性

タグ

必須の属性

使用可能な属性

adk:int, adk:float, adk:double


name −フィールド名


default −ページに表示するデフォルト値

maxlength −値の最大長

size −ディスプレイ サイズ

minInclusive −ユーザが指定する値はこの値以上でなければならない

maxInclusive −ユーザが指定する値はこの値以下でなければならない

minExclusive −ユーザが指定する値はこの値を下回ってはならない

maxExclusive −ユーザが指定する値はこの値を上回ってはならない

required − true または false(デフォルトは False、省略可能フィールド)

attrs −追加用の HTML 属性

adk:date


name −フィールド名


default −ページに表示するデフォルト値

maxlength −値の最大長

size −ディスプレイ サイズ

required − true または false(デフォルトは False、省略可能フィールド)

attrs −追加用の HTML 属性

lenient − true または false(デフォルトは False、つまり構文解析時に日付フォーマッタの基準を厳しく設定する。)

format −ユーザ入力で予期されるフォーマット(デフォルトはmm/dd/yyyy)

adk:email, adk:url, adk:identifier

name −フィールド名

default −ページに表示するデフォルト値

maxlength −値の最大長

size −ディスプレイ サイズ

required − true または false(デフォルトは False、省略可能フィールド)

attrs −追加用の HTML 属性

adk:text, adk:password


name −フィールド名


default −ページに表示するデフォルト値

maxlength −値の最大長

size −ディスプレイ サイズ

required − true または false(デフォルトは False、省略可能フィールド)

attrs −追加用の HTML 属性

pattern − Perl 5 の正規表現

adk:textarea


name −フィールド名

default −ページに表示するデフォルト値

required − true または false(デフォルトは False、省略可能フィールド)

attrs −追加用の HTML 属性

pattern − Perl 5 の正規表現

rows −表示する行数

columns −表示するカラム数


 

注意: タグの使用方法については、次の場所にある adk.tld を参照してください。

WLI_HOME/adapters/src/war/WEB-INF/taglibs

アプリケーション ビュー

アプリケーション ビューはアプリケーション中の特定機能に対するビジネス レベルのインタフェースを表しています。詳細については、アプリケーション ビューを参照してください。

 


ファイル構造

設計時 GUI アダプタを構築する場合、サービス アダプタの構築時と同じファイル構造が必要になります。手順 2a : ディレクトリ構造の設定を参照してください。この参照ページで説明されているファイル構造以外に、以下の点にも注意する必要があります。

 


イベントの処理フロー

図8-2 は、設計時 GUI の開発手順を表しています。

図8-2 設計時 GUI の開発のイベント フロー


 


 

 


手順 1 : 設計時 GUI 要件の定義

設計時 GUI の開発を始める前に、以下の質問に答えてその要件を定義する必要があります。

 


手順 2 : ページ フローの定義

ユーザがアプリケーション ビューを呼び出した場合の JSP の表示順序を指定する必要があります。この節では、効果的なアプリケーション ビューで必要になる基本的なページのフローについて説明します。なお、フローには具体的な要求に応じてページを追加できるので、ここでは最低限の条件についてのみ説明します。

画面 1 : ログイン

アプリケーション ビューはセキュリティ対策が施されたシステムであるため、ビューを実装するには、まずログインが必要です。このため、最初は必ず [Application View Console - Logon] ページを表示します。

このページを使用するには、有効なユーザ名とパスワードを入力する必要があります。この情報の有効性が検証されて、ユーザが、デフォルトの WebLogic Server セキュリティ レルムに定義されたアダプタ グループのメンバーであることを確認します。

注意: アプリケーション ビューの Web アプリケーションに対するセキュリティ要件は、WLI_HOME/adapters/ADAPTER/src/war/WEB-INF/web.xml ファイルで指定します。これは、adapter.war ファイルに組み込まれています。

画面 2 : アプリケーション ビューの管理

ユーザが正しくログインすると、[Application View Console] ページが表示されます。このページには、アプリケーション ビュー、各フォルダのステータス、およびこれらに対して実行されたアクションを示すフォルダが表示されます。ユーザはこのページから既存のアプリケーション ビューを表示したり、新しいアプリケーション ビューを追加できます。

画面 3 : 新しいアプリケーション ビューの定義

[Define New Application View] ページ(defappvw.jsp)を使用して、クライアントが置かれたあらゆるフォルダに新しいアプリケーション ビューを定義できます。これには、アプリケーション ビューとアダプタを関連付けるための説明が必要になります。このフォームには、アプリケーション ビュー名と説明を入力するフィールドに加え、アプリケーション ビューと関連付けるアダプタを表示するドロップダウン リスト ボックスがあります。

新しいアプリケーション ビューを定義した後に [OK] を選択すると、[Configure Connection] ページが表示されます。

画面 4 : 接続のコンフィグレーション

新しいアプリケーション ビューが有効であれば、ユーザは接続のコンフィグレーションを行う必要があります。すなわち、アプリケーション ビューの有効性が検証された後、[Configure Connection Parameters] ページ(confconn.jsp)が表示されます。このページは、EIS の接続パラメータを指定するためのフォームです。接続パラメータは EIS 固有のものであるため、このページの外観はアダプタごとに異なります。

ユーザが接続パラメータを発行すると、アダプタはこのパラメータを使用して EIS への新しい接続を試みます。EIS に接続されると、ユーザには次の [Application View Administration] ページが表示されます。

画面 5 : アプリケーション ビューの管理

ユーザには、新しいアプリケーション ビューを管理する手段が必要になります。[Application View Administration] ページ(appvwadmin.jsp)には、アンデプロイされたアプリケーション ビューの概要が表示されます。具体的には、以下の情報を示します。

このページでは、アプリケーション ビューにイベント リストやサービス リストを提供する以外に新しいイベントやサービスを追加できるページへのリンクも設定します。

画面 6 : イベントの追加

イベントをアプリケーション ビューに追加する必要があります。[Add Event] ページ(addevent.jsp)で、これを行うことができます。

新しいイベントには以下のルールが適用されます。

新しいイベントを定義し、保存したときに [Application View Administration] ページに戻ります。

画面 7 : サービスの追加

アプリケーション ビューに新しいサービスを追加したい場合があります。[Add Service] ページ( addservc.jsp)で、これを行うことができます。

新しいイベントには以下のルールが適用されます。

新しいサービスを定義し、保存すると [Application View Administration] ページに戻ります。

画面 8 :アプリケーション ビューのデプロイ

1 つ以上のサービス、またはイベントを追加したら、アプリケーション ビューをデプロイできます。アプリケーション ビューをデプロイすると、イベントやサービスの処理にこれを利用できるようになります。アプリケーション ビューをデプロイすると、[Deploy Application View] ページ(depappvw.jsp)が表示されます。

このページで、ユーザは以下のデプロイメント プロパティを指定します。

ユーザ アクセスの制御

表示されたフォームでユーザ名、またはグループ名を指定することにより、別のユーザのアクセス特権を許可したり、無効にしたりすることができます。アプリケーション ビューでは 2 つの機能(読み込みと書き込み)へのアクセスを制御します。

アプリケーション ビューのデプロイ

ユーザは、デプロイ オプションを選択してアプリケーション ビューをデプロイします。ユーザは、アプリケーション ビューを永続的にデプロイするかどうかを決定する必要があります。永続的デプロイメントが選択された場合、アプリケーション サーバを再起動するたびにアプリケーション ビューを再デプロイします。

アプリケーション ビューの保存

アプリケーション ビュー コンソールを介して、アンデプロイしたアプリケーション ビューを保存したり、後でこれを復元したりできます。このプロセスでは、デプロイされたアプリケーション ビューがすべて、リポジトリの中に保存されていることが前提になります。すなわち、保存されていないアプリケーション ビューをデプロイすれば自動的に保存されます。

画面 9 : アプリケーション ビューの概要

アプリケーション ビューが正しくデプロイされると、[Application View Summary](appvwsum.jsp)ページが表示されます。このページにはアプリケーション ビューに関する以下の情報が表示されます。

 


手順 3 : 開発環境のコンフィグレーション

ここでは、設計時 GUI 開発をサポートするためのソフトウェア環境をセットアップします。

手順 3a : メッセージ バンドルの作成

エンド ユーザ向けのメッセージは、メッセージ バンドルに入れます。メッセージ バンドルは、「key=value」の組み合わせから構成される単純な .properties テキスト ファイルで、メッセージをインターナショナライズできます。実行時にロケールと母国語を指定すると、メッセージの内容が、キー値の組み合わせの指定に従って翻訳され、ロケールに合わせた言語でメッセージが表示されます。

メッセージ バンドルの作成方法については、次に示すサイトにある JavaSoft チュートリアルを参照してください。

http://java.sun.com/docs/books/tutorial/i18n/index.html

手順 3b : WebLogic Server を再起動せずに JSP を更新する環境のコンフィグレーション

設計時 UI は WAR ファイルの J2EE Web アプリケーションとしてデプロイされます。WAR ファイルは、JAR ファイルにある WEB-INF/web.xml 中で Web アプリケーション記述子が付いた JAR ファイルです。ただし、WAR ファイルでは、WebLogic Server 中の J2EE Web コンテナを使用してそのまま JSP を再コンパイルすることはできません。したがって、通常は単に JSP ファイルを変更するだけでも、WebLogic Server を再起動する必要があります。これは JSP 本来の考え方とは異なるため、ADK では WebLogic Server を再起動しなくても JSP を更新できるように次の解決策をお勧めします。

  1. アダプタの設計時 UI 用に有効な WAR ファイルを作成します。サンプル アダプタでは、Ant を使用して、このファイルを作成します。リスト8-2 に J2EE WAR ファイルを生成するターゲットを示します。

コード リスト 8-2 WAR ファイルの作成ターゲット

<target name='war' depends='jar'>

<!-- 既存の環境を削除する -->
<delete file='${LIB_DIR}/${WAR_FILE}'/>

<war warfile='${LIB_DIR}/${WAR_FILE}'
webxml='${SRC_DIR}/war/WEB-INF/web.xml'
manifest='${SRC_DIR}/war/META-INF/MANIFEST.MF'>

<!--
重要!WEB-INF/web.xml ファイルを WAR から削除する
このファイルは上記の webxml 属性によりすでに含まれている
-->
<fileset dir="${SRC_DIR}/war" >
<patternset >
<include name="WEB-INF/weblogic.xml"/>
<include name="**/*.html"/>
<include name="**/*.gif"/>
</patternset>
</fileset>

<!--
重要!ADK 設計時フレームワークをアダプタの設計時
Web アプリケーションに含める
-->
<fileset dir="${WLI_HOME}/adapters/src/war" >
<patternset >
<include name="**/*.css"/>
<include name="**/*.html"/>
<include name="**/*.gif"/>
<include name="**/*.js"/>
</patternset>
</fileset>

<!--
設計時 UI をサポートするアダプタのクラスを含める
-->
<classes dir='${SRC_DIR}' includes='sample/web/*.class'/>

<classes dir='${SRC_DIR}/war' includes='**/*.class'/>
<classes dir='${WLI_HOME}/adapters/src/war'
includes='**/*.class'/>

<!--
アプリケーションで必要とされ、EAR に共有されないすべての JAR
ファイルを、WAR ファイルの WEB-INF/lib ディレクトリ下に含める
-->
<lib dir='${WLI_LIB_DIR}'
includes='adk-web.jar,webtoolkit.jar,wlai-client.jar'/>
</war>
</target>

この Ant ターゲットは、PROJECT_ROOT/lib ディレクトリ内に設計時インタフェース用に有効な WAR ファイルを作成します。このディレクトリで、PROJECT_ROOT は WebLogic Integration がインストールされている場所で、開発者はここにアダプタを構築します。たとえば、DBMS アダプタは、次の場所で構築されます。

WLI_HOME/adapters/DBMS

  • Web アプリケーションを WebLogic Server Administration を使用して WebLogic Server にロードします。

  • 開発環境のコンフィグレーションサンプル開発環境情報をリスト8-3 に示します。
  • コード リスト 8-3 アダプタ開発ツリーの名前

    <Application Deployed="true" Name="BEA_WLS_SAMPLE_ADK_Web"
    Path="WLI_HOME¥adapters¥PROJECT_ROOT¥lib">
        <WebAppComponent Name="BEA_WLS_SAMPLE_ADK_Web"
    ServletReloadCheckSecs="1" Targets="myserver" URI=
    "BEA_WLS_SAMPLE_ADK_Web"/>
    </Application>

    アダプタ論理名およびディレクトリの値を以下のように設定します。

    1. BEA_WLS_SAMPLE_ADK_Web を開発対象のアダプタの論理名に置き換えます。

    2. WLI_HOME を、WebLogic Integration がインストールされているディレクトリのパス名に置き換えます。リスト8-3 に示すように、PROJECT_ROOT を、アダプタ開発ツリーのトップレベル ディレクトリの名前に置き換えます。

    注意: GenerateAdapterTemplate を実行すると、リスト8-3 の情報が自動的に更新されます。WLI_HOME/adapters/ ADAPTER/src/overview.html を開いて、この情報をコピーし、config.xml エントリに貼り付けることができます。

  • JSPを変更する場合、src/war ディレクトリ内で変更し、WAR ターゲットを再構築します。一時ディレクトリ中の JSP は変更しないでください。WAR ファイルが作成されると、これは、特定の JSP への変更のみを取り上げる WebLogic Server によって監視されるディレクトリにも抽出されます。WebLogic Server が実行する監視の間隔は、WEB-INF/weblogic.xml にある pageCheckSeconds パラメータによって指定します。リスト8-4 にその方法を示します。
  • コード リスト 8-4 監視間隔の設定

    <jsp-descriptor>
    <jsp-param>
    <param-name>compileCommand</param-name>
    <param-value>/jdk130/bin/javac.exe</param-value>
    </jsp-param>
    <jsp-param>
    <param-name>keepgenerated</param-name>
    <param-value>true</param-value>
    </jsp-param>
    <jsp-param>
    <param-name>pageCheckSeconds</param-name>
    <param-value>1</param-value>
    </jsp-param>
    <jsp-param>
    <param-name>verbose</param-name>
    <param-value>true</param-value>
    </jsp-param>
    </jsp-descriptor>

    このアプローチにより、WAR ファイルが正しく構築されているかもテストされます。

     


    手順 4 : 設計時 GUI の実装

    Web アプリケーションで使用するフォームごとに、設計時フォーム処理の概要で説明する手順を実行するのは、単調であると同時に、エラーの原因になりやすいプロセスです。設計時フレームワークでは、「モデル/ビュー/コントローラ」パラダイムをサポートすることにり、このプロセスが簡略化されています。

    設計時 GUI を実装するには、DesignTimeRequestHandler クラスを実装する必要があります。このクラスでは、フォームからのユーザ入力を受け入れ、設計時 GUI のアクションを実行します。このクラスを実装するには、ADK の AbstractDesignTimeRequestHandler を拡張する必要があります。このオブジェクトが提供するメソッドの詳細については、DesignTimeRequestHandler クラスの Javadoc を参照してください。

    AbstractDesignTimeRequestHandler の拡張

    AbstractDesignTimeRequestHandler により、WebLogic Server でアプリケーション ビューのデプロイ、編集、コピー、削除を行うためのユーティリティ クラスが提供されます。これにより、アプリケーション ビュー記述子にアクセスできます。アプリケーション ビュー記述子では、アプリケーション ビューに適用する接続パラメータ、イベント リスト、サービス リスト、ログ レベル、およびプールの設定が提供されます。[Application View Summary] ページには、各パラメータが表示されます。

    ユーザ レベルから見ると、AbstractDesignTimeRequestHandler により、アダプタ全体に共通するすべてのアクションに適用できる実装が提供されます。主なアクションは以下のとおりです。

    インクルードするメソッド

    これらのアクションを正しく実行するには、AbstractDesignTimeRequestHandler を実装する際に、次のメソッドを指定する必要があります。

    AbstractDesignTimeRequestHandler の具象実装のたびに、次の 2 つのメソッドを指定する必要があります。

    手順 4a : ManagedConnectionFactory クラスの指定

    ManagedConnectionFactory クラスを指定するには、次のメソッドを実装する必要があります。

    protected Class getManagedConnectionFactoryClass();

    このメソッドはアダプタに対する SPI の ManagedConnectionFactory 実装クラスを返します。このクラスは、AbstractManagedConnectionFactory が EIS への接続を試みる場合に必要です。

    手順 4b : initServiceDescriptor() の実装

    サービス アダプタについて、アダプタのユーザが設計時にサービスを追加できるように、initServiceDescriptor() を実装する必要があります。このメソッドは、リスト8-5 のように実装します。

    コード リスト 8-5 initServiceDescriptor() の実装

    protected abstract void initServiceDescriptor(ActionResult result,
    IServiceDescriptor sd,
    HttpServletRequest request)
    throws Exception

    このメソッドは、AbstractDesignTimeRequestHandleraddservc() の実装によって呼び出されます。このメソッドには、IServiceDescriptor パラメータに関連付けられた EIS 固有の情報を初期化する役割があります。addservc() の基本クラスが、エラー処理などを実行します。ユーザが addservc JSP を発行すると、addservc() メソッドが呼び出されます。

    手順 4c : initEventDescriptor() の実装

    イベント アダプタは、アダプタのユーザが設計時にイベントを追加できるように、initEventDescriptor() を実装する必要があります。このメソッドは、リスト8-6 のように実装します。

    コード リスト 8-6 initEventDescriptor() の実装

    protected abstract void
    initEventDescriptor(ActionResult result,
    IEventDescriptor ed,
    HttpServletRequest request)
    throws Exception;

    このメソッドは、AbstractDesignTimeRequestHandleraddevent() の実装によって呼び出されます。このメソッドには、IServiceDescriptor パラメータに関連付けられた EIS 固有の情報を初期化する役割があります。addevent() の基本クラスを実装することによりエラー処理などのコンセプトに対応できます。ユーザが addevent JSP を発行すると、addevent() メソッドが呼び出されます。addevent には共通のロジックが含まれていることに加えて EIS 固有のロジックが initEventDescriptor() に委託されるので、オーバーライドしないようにしてください。

    注意: サービス記述子にプロパティを追加する場合は、Bean 属性の命名規約に従って名前を割り当てる必要があります。これに従っていない場合、サービス記述子では、InteractionSpec は正しく更新されません。

     


    手順 5 : HTML フォームの作成

    設計時 GUI を実装する際の最後の手順は、インタフェースを構成する各種のフォームを作成することです。フォームの作成に習熟するために、以下の節を参照してください。

    以下の節では、これらのフォームのコードの作成方法について説明します。フォームのサンプル コードもあります。

    手順 5a : confconn.jsp フォームの作成

    このページでは、ユーザが EIS で接続パラメータを指定するための HTML フォームを示します。このページには、アダプタの設計時 Web アプリケーションを表示する必要があります。このフォームは doAction=confconn によって ControllerServlet にポストされます。すなわち、設計時インタフェースの RequestHandler では次のメソッドを指定する必要があります。

    public ActionResult confconn(HttpServletRequest request) throws
    例外

    このメソッドを実装すると、指定した接続パラメータにもとづいてアダプタの ManagedConnectionFactory の新しいインスタンスを作成できます。ManagedConnectionFactory により、EIS への接続を設定するための CCI ConnectionFactory が指定されます。したがって、発行された confconn フォームを処理することにより EIS に接続するために必要なパラメータが正しく指定されているかどうかが検証されます。

    リスト8-7 にサンプル アダプタの confconn フォームを示します。

    コード リスト 8-7 confconn.jsp のコーディング

    1  <%@ taglib uri='/WEB-INF/taglibs/adk.tld' prefix='adk' %>
    2 <form method='POST' action='controller'>
    3 <table>
    4 <tr>
    5 <td><adk:label name='userName' required='true'/></td>
    6 <td><adk:text name='userName' maxlength='30' size='8'/></td>
    7 </tr>
    8 <tr>
    9 <td><adk:label name='password' required='true'/></td>
    10 <td><adk:password name='password' maxlength='30'size='8'/></td>
    11 </tr>
    12 <tr>
    13 <td colspan='2'><adk:submit name='confconn_submit'
    doAction='confconn'/></td>
    14 </tr>
    15 </table>
    16 </form>

    リスト8-7 の内容を以下の節に示します。

    ADK タグ ライブラリのインクルード

    リスト8-7 のライン 1 では、JSP エンジンに ADK タグ ライブラリをインクルードするように指定しています。

    <%@ taglib uri='/WEB-INF/taglibs/adk.tld' prefix='adk' %>

    ADK が提供するタグを表 8-3 に示します。

    ControllerServlet のポスト

    リスト8-7 のライン 2 では、フォームが ControllerServlet にポストされます。

    <form method='POST' action='controller'>

    ControllerServlet は、Web アプリケーションに合わせて web.xml ファイルでコンフィグレーションされます。これは、RequestHandler で実行するメソッドに HTTP 要求を委託します。ControllerServlet を使用するのに、いずれのコードも指定する必要はありません。ただし、表 8-5 にリストされた初期パラメータは指定する必要があります。

    表8-5 ControllerServlet の初期パラメータ

    パラメータ

    説明

    MessageBundleBase

    アダプタで使用するすべてのメッセージ バンドルに基本名を指定する。ADK は、サンプル アダプタには常に論理名を使用する。ただし、メッセージ バンドルには独自の命名規約を選択できる。なお、このプロパティは、ra.xml でも設定できる。

    DisplayPage

    アプリケーションのページのフローとルック & フィールの両方をコントロールする JSP の名前を指定する。サンプル アダプタでは、このページで display.jsp が表示される。

    LogConfigFile

    アダプタの log4j コンフィグレーション ファイルを指定する。

    RootLogContext

    ルート ログの内容を指定する。ログの内容を利用して、プログラムの各モジュールに従い、ログ メッセージをカテゴリ別に分類できる。ADK では、特定のアダプタのメッセージがすべて、特定のカテゴリ別に分類されるように、ルート ログの内容にアダプタの論理名を使用する。

    RequestHandlerClass

    アダプタの要求ハンドラ クラスに完全修飾名を付ける。サンプル アダプタの場合、この値は sample.web.DesignTimeRequestHandler である。


     

    [Form] フィールドのラベルの表示

    リスト8-7 のライン 5 では、フォーム中のフィールドのラベルを表示します。

    <adk:label name='userName' required='true'/>

    表示する値は、ユーザのメッセージ バンドルから検索します。required 属性は、ユーザのパラメータ指定が必須であるかどうかを示します。

    テキスト フィールドのサイズの表示

    リスト8-7 のライン 6 では、テキスト フィールドにサイズ 8、最大長 30 が設定されます。

    <adk:text name='userName' maxlength='30' size='8'/>

    フォームの [Submit] ボタンの表示

    リスト8-7 のライン 13 では、アダプタ ユーザが入力を発行するためのフォームにボタンが表示されます。

    <adk:submit name='confconn_submit' doAction='confconn'/>

    ボタンのラベルは、confconn_submit を使用してメッセージ バンドルから検索されます。フォーム データを発行すると、ControllerServlet が、登録済みのリクエスト ハンドラ(「RequestHandlerClass プロパティ」を参照)で confconn メソッドを検索し、リクエスト データをリクエスト ハンドラに送ります。

    confconn() の実装

    AbstractDesignTimeRequestHandler により、confconn() メソッドが実装されます。このメソッドの実装によって、Java Reflection API を利用して、アダプタの ManagedConnectionFactory インスタンスのセッター メソッドに、ユーザが指定した接続パラメータがマップされます。アダプタの ManagedConnectionFactory に具象なクラスを指定するだけで済むようになります。このクラスを指定するには、次のメソッドを実装します。

    public Class getManagedConnectionFactoryClass()

    手順 5b : addevent.jsp フォームの作成

    このフォームを使用してアプリケーション ビューに新しいイベントを追加できます。このフォームは EIS 固有のものです。リスト8-8 はサンプル アダプタの addevent.jsp フォームを示しています。

    コード リスト 8-8 addevent.jsp フォームを作成するサンプル コード

    1  <%@ taglib uri='/WEB-INF/taglibs/adk.tld' prefix='adk' %>
    2 <form method='POST' action='controller'>
    3 <table>
    4 <tr>
    5 <td><adk:label name='password' required='true'/></td>
    6 <td><adk:text name='eventName' maxlength='100' size='50'/></td>
    7 </tr>
    8 <tr>
    9 <td colspan='2'><adk:submit name='addevent_submit'
    doAction='addevent'/></td>
    10 </tr>
    11 </table>
    12 </form>

    以下の節に、addevent.jsp の内容を説明します。

    ADK タグ ライブラリのインクルード

    リスト8-8 のライン 1 では、JSP エンジンに ADK タグ ライブラリをインクルードするように指定しています。

    <%@ taglib uri='/WEB-INF/taglibs/adk.tld' prefix='adk'%>

    ADK が提供するタグを表 8-3 に示します。

    ControllerServlet のポスト

    リスト8-8 のライン 2 では、フォームが ControllerServlet にポストされます。

    <form method='POST' action='controller'>

    ControllerServlet は、Web アプリケーションに合わせて web.xml ファイルでコンフィグレーションされます。これは、RequestHandler で実行するメソッドに HTTP 要求を委託します。ControllerServlet を使用するのに、いずれのコードも指定する必要はありません。ただし、表 8-5 「ControllerServlet パラメータ」にリストされた初期パラメータは指定する必要があります。

    [Form] フィールド ラベルの表示

    リスト8-8 のライン 5 では、フォーム中のフィールドのラベルを表示します。

    <adk:label name='eventName' required='true'/>

    表示する値は、ユーザのメッセージ バンドルから検索します。required 属性は、ユーザのパラメータ指定が必須であるかどうかを示します。

    テキスト フィールドのサイズの表示

    リスト8-8 のライン 6 では、テキスト フィールドにサイズ 50、最大長 100 が設定されます。

    <adk:text name='eventName' maxlength='100' size='50'/>

    フォームの [Submit] ボタンの表示

    リスト8-8 のライン 9 では、アダプタ ユーザが入力を発行するためのフォームにボタンが表示されます。

    <adk:submit name='addevent_submit' doAction='addevent'/>

    ボタンのラベルは、addevent_submit を使用してメッセージ バンドルから検索されます。フォーム データを発行すると、ControllerServlet が、登録済みのリクエスト ハンドラ(「RequestHandlerClass プロパティ」を参照)で addevent() メソッドを検索し、リクエスト データをリクエスト ハンドラに送ります。

    フィールドの追加

    イベントを定義するときに必要となるその他のフィールドを追加する必要があります。複数のフィールドがあるフォームの例については、DBMS サンプル アダプタを使用したアダプタ開発方法の学習を参照してください。

    手順 5c : addservc.jsp フォームの作成

    このフォームを使用して、アプリケーション ビューに新しいサービスを追加できます。このフォームは EIS 固有のものです。リスト8-9 にサンプル アダプタの addservc.jsp フォームを示します。

    コード リスト 8-9 addservc.jsp のコーディング

    1  <%@ taglib uri='/WEB-INF/taglibs/adk.tld' prefix='adk' %>
    2 <form method='POST' action='controller'>
    3 <table>
    4 <tr>
    5 <td><adk:label name='serviceName' required='true'/></td>
    6 <td><adk:text name='serviceName' maxlength='100' size='50'/></td>
    7 </tr>
    8 <tr>
    9 <td colspan='2'><adk:submit name='addservc_submit'
    doAction='addservc'/></td>
    10 </tr>
    11 </table>
    12 </form>

    ADK タグ ライブラリのインクルード

    リスト8-9 のライン 1 では、JSP エンジンに ADK タグ ライブラリをインクルードするように指定しています。

    <%@ taglib uri='/WEB-INF/taglibs/adk.tld' prefix='adk' %>

    タグ ライブラリでは、ADK で提供される使いやすいフォーム検証機能がサポートされます。ADK タグ ライブラリには、表 8-3 に示すタグが用意されています。

    ControllerServlet のポスト

    リスト8-9 のライン 2 では、フォームが ControllerServlet にポストされます。

    <form method='POST' action='controller'>

    ControllerServlet は、Web アプリケーションに合わせて web.xml ファイルでコンフィグレーションされます。これは、RequestHandler で実行するメソッドに HTTP 要求を委託します。ControllerServlet を使用するのに、いずれのコードも指定する必要はありません。ただし、表 8-5 「ControllerServlet パラメータ」にリストされた初期パラメータは指定する必要があります。

    [Form] フィールド ラベルの表示

    リスト8-9 のライン 5 では、フィールドのラベルを表示します。

    <adk:label name='serviceName' required='true'/>

    表示する値は、ユーザのメッセージ バンドルから検索します。required 属性は、ユーザのパラメータ指定が必須であるかどうかを示します。

    テキスト フィールドのサイズの表示

    リスト8-9 のライン 6 では、テキスト フィールドにサイズ 50、最大長 100 が設定されます。

    <adk:text name='serviceName' maxlength='100' size='50'/>

    フォームの [Submit] ボタンの表示

    リスト8-9 のライン 9 では、アダプタ ユーザが入力を発行するためのフォームにボタンが表示されます。

    <adk:submit name='addservc_submit' doAction='addservc'/>

    ボタンのラベルは、[addservc_submit]を使用してメッセージ バンドルから検索されます。フォーム データを発行すると、ControllerServlet が、登録済みのリクエスト ハンドラ(「RequestHandlerClass プロパティ」を参照)で addservc メソッドを検索し、リクエスト データをリクエスト ハンドラに送ります。

    フィールドの追加

    サービスを定義するときに必要となるその他のフィールドを追加する必要があります。複数フィールドのあるフォームの例については、DBMS サンプル アダプタを使用したアダプタ開発方法の学習を参照してください。

    手順 5d : イベントおよびサービスの編集機能の実装(省略可能)

    設計時にユーザに対しイベントやサービスを編集する機能を許可する場合は、アダプタ プロパティを編集し、edtservc.jspedtevent.jsp のフォームを作成して、具体的なメソッドを実装する必要があります。ここでは、以下のタスクについて説明します。

    注意: この手順は省略可能です。ユーザにこれらの機能を提供する必要はありません。

    アダプタ プロパティ ファイルの更新

    まず、アダプタ プロパティ ファイルを次のように変更してサンプル アダプタに合わせてシステム プロパティを更新します。

    アダプタ プロパティ ファイルを更新した後、新しいファイルを元のファイルと比較し、同期されていることを確認します。

    edtservc.jsp と addservc.jsp の作成

    これらの Java サーバ ページは編集機能を提供するために呼び出されるものです。編集 JSP ファイルと追加 JSP ファイルの主な違いは、記述子の値のロード方法です。編集 JSP ファイルは、既存の記述子の値をロードします。このため、DBMS サンプル アダプタでの編集および追加には、同じ HTML ファイルを使用します。

    これらの HTML ファイルは各 JSP ページに静的にインクルードされます。これにより、JSP/HTML とプロパティを複製しなくても済むようになります。記述子の値は編集ページに表示するコントロールにマップされます。ここから、いずれの変更も発行できます。

    記述子に定義された値でコントロールを初期化するには、AbstractDesignTimeRequestHandlerloadEvent/ServiceDescriptorProperties() メソッドを呼び出します。このメソッドにより、サービスのプロパティがすべて、RequestHandler に設定されます。これらの値を設定すると、RequestHandler により JSP ファイルで使用する ADK コントロールにそれぞれの値がマップされます。

    loadEvent/ServiceDescriptorProperties() をデフォルトの設定で実装すると、ADK タグに対応するプロパティ名を使用して、記述子の値をマップします。ADK タグ名以外の値を使用してサービスやイベントのプロパティをマップすると、これらの値をオーバーライドして ADK タグ名マッピングに記述子を送ります。

    また、HTML を解決する前に、RequestHandler を初期化する必要があります。この初期化は、1 回だけ実行します。リスト8-10edtevent.jsp のロード時に使用するコード例を示します。

    コード リスト 8-10 edtevent.jsp のロード時に使用するサンプル コード

    if(request.getParameter("eventName") != null){
    handler.loadEventDescriptorProperties(request);
    }

    edtservc.jsp ファイルを、edtservc に発行する必要があります。

    <adk:submit name='edtservc_submit' doAction='edtservc'/>

    edtevent.jsp ファイルを、edtevent に発行する必要があります。

    <adk:submit name='edtevent_submit' doAction='edtevent'/>

    以下の場所の DBMS サンプル アダプタに例を示します。

    WLI_HOME/adapters/dbms/src/war

    メソッドの実装

    最後に、表 8-6 に示されているメソッドを実装します。

    表8-6 edtservc.jsp および edtevent.jsp で実装するメソッド

    メソッド

    説明

    loadServiceDescriptorProperties

    および

    loadEventDescriptorProperties

    これらのメソッドにより、RequestHandler に ADK のタグ値マッピング機能が提供される。開発者が同じ値を使用して ADK タグに名前を付け、サービス/イベント記述子をロードする場合、マッピングはフリーになる。これ以外の場合は、開発者が自分の DesigntimeRequestHandler をオーバーライドして、これらのマッピングを行う必要がある。

    boolean supportsEditableServices()

    および

    boolean supportsEditableEvents()

    これらのメソッドはマーカーとして使用する。これらのメソッドが返す値が true の場合は、[Application View Administration] ページに編集リンクが表示される。DesigntimeRequestHandler のオーバーライドがサポートされている。

    editServiceDescriptor

    および

    editEventDescriptor

    これらのメソッドを使用して、編集済みのサービス データまたはイベント データの永続性を設定する。これらのメソッドにより、要求によって ADK タグ値が抽出され、これがサービス記述子、またはイベント記述子に追加される。また、これらのメソッドではイベントまたはサービスに関連するスキーマを特別に処理する。スキーマの変更が必要な場合は、ここで更新する必要がある。要求から値を読み取った後で、これが必要なくなった場合は、RequestHandler から削除する必要がある。


     

    各メソッドの実装例については、サンプル アダプタを参照してください。

    手順 5e : Web アプリケーションのデプロイメント記述子(WEB-INF/web.xml)の記述

    アダプタに対して WEB-INF/web.xml Web アプリケーションを作成する必要があります。GenerateAdapterTemplate を使用してサンプル アダプタからアダプタを複製する場合は、新しいアダプタの web.xml ファイルが自動的に生成されます。

    以下のコード リスト(リスト8-11 から リスト8-15)は、このファイルの重要コンポーネントです。

    コード リスト 8-11 web.xml サーブレット コンポーネント

    <servlet>
    <servlet-name>controller</servlet-name>
    <servlet-class>com.bea.web.ControllerServlet</servlet-class>
    <init-param>
    <param-name>MessageBundleBase</param-name>
    <param-value>BEA_WLS_SAMPLE_ADK</param-value>
    <description>The base name for the message bundles
    for this adapter. The ControllerServlet uses this
    name and the user's locale information to
    determine which message bundle to use to
    display the HTML pages.</description>
    </init-param>
        <init-param>
    <param-name>DisplayPage</param-name>
    <param-value>display.jsp</param-value>
    <description>The name of the JSP page
    that includes content pages and provides
    the look-and-feel template. The ControllerServlet
    redirects to this page to let it determine what to
    show the user.</description>
    </init-param>
        <init-param>
    <param-name>LogConfigFile</param-name>
    <param-value>BEA_WLS_SAMPLE_ADK.xml</param-value>
    <description>The name of the sample adapter's
    LOG4J configuration file.</description>
    </init-param>
        <init-param>
    <param-name>RootLogContext</param-name>
    <param-value>BEA_WLS_SAMPLE_ADK</param-value>
    <description>The root category for log messages
    for the sample adapter. All log messages created
    by the sample adapter will have a context starting
    with this value.</description>
    </init-param>
        <init-param>
    <param-name>RequestHandlerClass</param-name>
    <param-value>sample.web.DesignTimeRequestHandler
    </param- value>
    <description>Class that handles design
    time requests</description>
    </init-param>
        <init-param>
    <param-name>Debug</param-name>
    <param-value>on</param-value>
    <description>Debug setting (on|off, off is
    default)</description>
    </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>

    リスト8-12 に示すこのコンポーネントでは、ControllerServletcontroller という名前にマップされます。このアクションには、ADK JSP フォームで ControllerServletcontroller という論理名にマップされるという前提に基づくため、重要な意味があります。

    コード リスト 8-12 web.xml ControllerServlet マッピング コンポーネント

    <servlet-mapping>
    <servlet-name>controller</servlet-name>
    <url-pattern>controller</url-pattern>
    </servlet-mapping>

    リスト8-13 に示すこのコンポーネントでは ADK タグ ライブラリを宣言します。

    コード リスト 8-13 web.xml ADK タグ ライブラリ コンポーネント

    <taglib>
    <taglib-uri>adk</taglib-uri>
    <taglib-location>/WEB-INF/taglibs/adk.tld</taglib-location>
    </taglib>

    リスト8-14 に示すこのコンポーネントでは Web アプリケーションに対するセキュリティ制約を宣言します。前のリリースでは、ユーザはアダプタ グループに属している必要がありました。リリース 7.0 以降では、ユーザは Administrators グループに属している必要があります(リスト8-14 および リスト8-15 のロール名を参照してください)。これは、デプロイメントに、ユーザが Administrators グループに属することが必須の MBeans へのアクセスが必要となるためです。

    コード リスト 8-14 web.xml セキュリティ制約のコンポーネント

    <Security-constraint>
    <web-resource-collection>
    <web-resource-name>AdapterSecurity</web-resource-name>
    <url-pattern>*.jsp</url-pattern>
    </web-resource-collection>
        <auth-constraint>
    <role-name>Administrators</role-name>
    </auth-constraint>
        <user-data-constraint>
    <transport-guarantee>NONE</transport-guarantee>
    </user-data-constraint>
    </security-constraint>

    リスト8-15 に示すこのコンポーネントでは、ログイン コンフィグレーションを宣言します。

    コード リスト 8-15 web.xml ログイン コンフィグレーションのコンポーネント

    <login-config>
    <auth-method>FORM</auth-method>
    <realm-name>default</realm-name>
    <form-login-config>
    <form-login-page>/login.jsp</form-login-page>
    <form-error-page>/login.jsp?error</form-error-page>
    </form-login-config>
    </login-config>
    <security-role>
    <role-name>Administrators</role-name>
    </security-role>

     


    手順 6 : ルック & フィールの実装

    設計時 GUI の開発時に従うべき重要なプログラミング手法として、アプリケーション ビューで使用するすべてのページで一貫したルック & フィールを実装する必要があります。ルック & フィールは display.jsp によって決定されます。このページは ADK に組み込まれており、設計時 Web アプリケーションに以下の利点をもたらします。

    全体のページを通じて一貫したルック & フィールを実装するには、次の手順を実行します。

    1. サンプル アダプタの display.jsp 基準として使用します。例については、WLI_HOME/adapters/sample/src/war/WEB-INF/web.xml を参照してください。

    2. HTML を使用して、独自のルック & フィールか社内の ID 基準に従って、ルック & フィール マークアップを変更します。

    3. HTML マークアップのいずれかの場所に、次の行を追加します。
      <%pageContext.include(sbPage.toString());%>

      このコードは、別のページを組み込むときに使用するカスタム JSP タグです。このタグでは、JSP スクリプトレット sbPage.toString() を使用して、HTML または JSP ページを表示ページに含めます。sbPage.toString() は、実行時 content (HTTP 要求パラメータ) の値の妥当性を検証します。

     


    手順 7 : サンプル アダプタの設計時インタフェースのテスト

    WebLogic Integration では、サンプル アダプタの設計時インタフェースの基本的な機能を検証するための、テスト ドライバが用意されています。このテスト ドライバは、http://www.httpunit.org にあるテスト用 Web インタフェースのフレームワークである HTTP ユニットを基準に作成されています。HTTP ユニットは、JUnit テスト フレームワーク(http://www.junit.org にあるフレームワーク)に関連しています。HTTP ユニットと JUnit の両バージョンとも WebLogic Integration の中に組み込まれています。

    テスト ドライバではいくつかのテストが実行されます。これによりアプリケーション ビューが作成されてイベントとサービスの両方がアプリケーション ビューに追加され、アプリケーション ビューにデプロイ/アンデプロイを実行し、イベントとサービスの両方についてテストを実行します。正常に実行が終了すると、テスト ドライバはすべてのアプリケーション ビューを削除します。

    ファイルとクラス

    すべてのテスト ケースが、DesignTimeTestCase クラス、または対応する親クラス(AdapterDesignTimeTestCase)で有効です。DesignTimeTestCase クラス(sample.web パッケージ、および WLI_HOME/adapters/sample/src/sample/web フォルダ にあります)には、サンプル アダプタに固有のテストが組み込まれています。AdapterDesignTimeTestCase (com.bea.adapter.web パッケージ、および WLI_HOME/lib/adk-web.jar ファイルにあります) には、すべてのアダプタと一部の便利なメソッドに適用されるテストが組み込まれています。

    テストの実行

    設計時インタフェースをテストするには、次の一連の手順を実行します。

    1. サンプル アダプタをデプロイして、WebLogic Server を起動します。次に、現在の作業フォルダを具体的なプロジェクト フォルダに設定して、以下の手順に示すとおり setenv コマンドを実行します。

    2. WLI_HOME に移動し、コマンド プロンプトで setenv と入力します。

      setenv コマンドにより、手順 3 の実行に必要な環境が設定されます。

    3. コマンド プロンプトで次のように入力して、サンプル アダプタの Web フォルダに移動します。
      cd WLI_HOME/adapters/sample/project

    4. designTimeTestCase.properties ファイルを編集します。実行するテスト ケースのリストを含む行に、web.DesignTimeTestCase を追加します。次のような行になります。
      test.case=web.DesignTimeTestCase

    5. ファイルの終わり付近で、ユーザ名とパスワードの 2 つのエントリの値の変更が必要になる場合があります。テスト ドライバが、WebLogic Integration に接続する際に必要となるユーザ名とパスワードを指定します。

    6. test.properties ファイルを編集した後、WebLogic Server を起動します。

    7. コマンド プロンプトで次のようにコマンドを入力してテストを実行します。
      ant designtimetest

     

    ページの先頭 前 次