• 検索結果がありません。

2 API のサポート のサポート のサポート のサポート

Cookie

サーブレット 2. 2 API のサポート のサポート のサポート のサポート

サーブレット サーブレット

サーブレット 2.2 完全準拠モード 完全準拠モード 完全準拠モード 完全準拠モード

このモードでは、JavaサーブレットAPI 2.2仕様に準拠しますが、既存のWebSphere

Application Server v3.5およびv3.5.1アプリケーションとの互換性は失われます。

デフォルトのモードは、準拠モードです。モードを選択するには、Administrative Console

の「Servlet Engine General」タブを使用します。

サーブレット サーブレット サーブレット

サーブレット 2.2 API のサポート のサポート のサポート のサポート

WebSphere Advanced Edition 3.5.3では、サーブレット2.2 APIを部分的にサポートしてい

ます。サポートされているAPIの機能は次のとおりです。

レスポンス・バッファリング

複数エラー・ページのサポート

ウェルカム・ファイル・リスト

新しいリクエスト・マッピングのロジック

Webアプリケーションごとのセッション・タイムアウト

WebアプリケーションごとのMIMEマッピング・テーブル

名前によるリクエスト・ディスパッチャ

相対パスによるリクエスト・ディスパッチャ

重複ヘッダーのサポート(addHeader()、getHeaders(name)の各API)

Webアプリケーションの初期化パラメータ

国際化に関する機能強化(getLocale()、getLocales())

新しいAPIであるgetServletName()

サーブレット2.2 APIの機能のうち、次に示すものはサポートされません。

J2EEセキュリティ・ロール

web.xml内のセキュリティ・デプロイメント情報

isUserInRole()

getUserPrincipal() API

J2EEスタイルのフォーム・ログイン

J2EEの参照

EJB参照

リソース参照

環境参照

環境エントリ

web.xml内の参照デプロイメント情報

web.xml内のセキュリティ・デプロイメント情報

WebSphere のサーブレット のサーブレット のサーブレット のサーブレット API の拡張機能 の拡張機能 の拡張機能 の拡張機能

WebSphere Application Serverには、JavaサーブレットAPIを拡張および追加する独自の

パッケージがあります。これらの拡張と追加は、セッションの状態の管理、パーソナライズ したWebページの作成、サーブレットのエラー・レポート生成機能の強化およびデータ ベース・アクセスを目的としています。

Application ServerのAPIパッケージとクラスは次のとおりです。

com.ibm.servlet.personalization.sessiontracking

サイト訪問者がWebサイトにアクセスする際の参照元ページを記録し、そのサイト内 での訪問者の現在位置を追跡し、ユーザーIDとセッションを結び付けます。セッショ ン・クラスタリングのサポートもAPIに追加されています。

com.ibm.websphere.servlet.session.IBMSessionインタフェース

セッション・サポートに関するHttpSessionの機能を拡張し、セッション・クラスタ 環境におけるWeb管理者の制御範囲を広げます。

com.ibm.servlet.personalization.userprofileパッケージ

Web訪問者に関する詳細な情報を保持し、アプリケーションに取り込むためのインタ フェースを提供します。これによって、パーソナライズされたユーザー・エクスペリエ ンスが実現されます。この情報は、データベースに保存されます。

com.ibm.websphere.userprofileパッケージ ユーザー・プロファイルに関する機能を拡張します。

com.ibm.websphere.servlet.error.ServletErrorReportクラス

アプリケーションでエラーが発生したときに、カスタマイズされた詳細なメッセージを クライアントに返すことができます。

com.ibm.websphere.servlet.eventパッケージ

アプリケーション・ライフ・サイクル・イベント、サーブレット・ライフ・サイクル・

イベントおよびサーブレットのエラーを通知するためのリスナー・インタフェースを提 供します。このパッケージには、リスナーを登録するためのインタフェースも含まれて います。

com.ibm.websphere.servlet.filterパッケージ

サーブレット・チェーンをサポートするクラスがあります。このパッケージには、

ChainerServlet、ServletChainオブジェクトおよびChainResponseオブジェク トが含まれています。

com.ibm.websphere.servlet.requestパッケージ

抽象クラスHttpServletRequestProxyが含まれています。これは、サーブレット・

エンジンのHttpServletRequestオブジェクトをオーバーロードするためのもので す。オーバーロードされたリクエスト・オブジェクトは、別のサーブレットに転送され て処理されます。このパッケージに含まれているServletInputStreamAdapterク ラスは、InputStreamをServletInputStreamに変換し、InputStreamへのすべ てのメソッド・コールをかわりに処理します。

com.ibm.websphere.servlet.responseパッケージ

抽象クラスHttpServletResponseProxyが含まれています。これは、サーブレッ ト・エンジンのHttpServletResponseオブジェクトをオーバーロードするためのも のです。オーバーロードされたレスポンス・オブジェクトは、別のサーブレットに転送 されて処理されます。このパッケージに含まれている

ServletOutputStreamAdapterクラスは、OutputStreamを

ServletOutputStreamに変換し、OutputStreamへのすべてのメソッド・コールを かわりに処理します。

このパッケージにはStoredResponseオブジェクトも含まれています。これは、天気 予報などの一定期間変化しないと考えられるデータが格納されているサーブレット・レ スポンスをキャッシュするときに便利です。

Oracle Application Server でのサーブレット でのサーブレット でのサーブレット でのサーブレット API のサポート のサポート のサポート のサポート

Oracle Application ServerのOC4Jは、Javaサーブレット2.2および2.3の仕様に完全準拠し

た実装です。したがって、Javaサーブレット2.2の標準コードは正常に動作します。一方、

WebSphere 3.5.3は、前述のとおり、Javaサーブレット2.2仕様を部分的にサポートしてい

ます。特に、セキュリティのサポートはサーブレット2.1の仕様レベルのままであり、Web アプリケーションに対応するweb.xmlファイルで通常定義されているはずのJ2EE参照をサ ポートしていません。また、J2EE Webアプリケーションを直接サポートしていません。

APIとWebSphereの拡張機能において、このようなサポートの相違点が存在するので、ア

プリケーションで拡張機能や非推奨となっているメソッド・コールを使用している場合は、

コード・レベルを変更しなければ移行できないことがあります。WebSphereはJ2EEのデプ ロイメント・ディスクリプタをサポートしていないので、既存のアプリケーションをOracle

Application ServerのOC4Jにデプロイするには、J2EE Webアプリケーション構造にパッ

ケージする必要があります。

スタンドアロン・サーブレットの スタンドアロン・サーブレットの スタンドアロン・サーブレットの

スタンドアロン・サーブレットの OC4J への移行 への移行 への移行 への移行

オラクル社は、WebSphere Advanced Edition 3.5.3付属のサンプル・サーブレットを移行し てみました。サンプルの中には、WebSphere固有の拡張機能を使用していることが原因で移 行できなかったサーブレットがあります。たとえば、AbstractLoginServletは、

WebSphere固有のシングル・サインオン・パッケージを使用しているので移行できませんで

した。

移行に成功したサーブレットは次のとおりです(これらは WebSphereInstallHome/Servletsにあります)。

Custom Login Servlet

HelloWorldServlet

SessionServlet

この他にも、WebSphere固有のデプロイメント・ディスクリプタを使用する、パッケージ化 されたWebアプリケーションも移行しました。

これらのサンプルは、コードを変更することなく移行されています。次のディレクトリに配 置するだけで済みます。

ORACLE_HOME/j2ee/home/default-web-app/WEB-INF/classes(UNIXの場合)

または

ORACLE_HOME¥j2ee¥home¥default-web-app¥WEB-INF¥classes(NTの場合)

OC4Jのサーブレット・コンテナは、これらのサーブレットを自動的にロードします。これ らのサーブレットをブラウザから起動する際にはURLを、

http://<hostname>:7777/j2ee/servlet/HelloWorldServletのように指定します。

WebSphereには、スタンドアロン・サーブレット(初期化パラメータおよび構成情報を必要 とするサーブレット)をデプロイするための別の方法があります。このサーブレットは、

サーブレット名の後に.servletを付けたデプロイメント・ディスクリプタを使用してデプ ロイされます。このWebSphere固有のデプロイメント・ディスクリプタをJ2EE Webアプリ ケーションのデプロイメント・ディスクリプタに移行しなければ、OC4Jではデプロイでき ません。

例例例

3-1 SnoopServlet.servletのデプロイメント・ディスクリプタのデプロイメント・ディスクリプタのデプロイメント・ディスクリプタのデプロイメント・ディスクリプタ

<servlet>

<name>snoop</name>

<description>snoop servlet</description>

<code>SnoopServlet</code>

<servlet-path>/servlet/snoop/*</servlet-path>

<servlet-path>/servlet/snoop2/*</servlet-path>

<init-parameter>

<name>param1</name>

<value>test-value1</value>

</init-parameter>

<autostart>false</autostart>

</servlet>

.servlet のサンプル・ファイル のサンプル・ファイル のサンプル・ファイル のサンプル・ファイル : SnoopServlet.servlet

SnoopServletを移行するには、その.classファイルを

ORACLE_HOME/j2ee/home/default-web-app/WEB-INF/classes(UNIXの場合)ま たはORACLE_HOME¥j2ee¥home¥default-web-app¥WEB-INF¥classes(NTの場合)

に置きます。

その後、次のディレクトリにあるweb.xmlを編集します。

UNIXの場合

ORACLE_HOME/j2ee/home/default-web-app/WEB-INF

NTの場合

ORACLE_HOME¥j2ee¥home¥default-web-app¥WEB-INF

移行後のSnoopServletのデプロイメント・ディスクリプタは次のようになります。

<web-app>

<servlet>

<servlet-name>snoop</servlet-name>

<description>snoop servlet</description>

<servlet-class>SnoopServlet</servlet-class>

<servlet-path>/servlet/snoop/*</servlet-path>

</init-param>

<autostart>false</autostart>

</servlet>

</web-app>

クラスタ対応アプリケーションの クラスタ対応アプリケーションの クラスタ対応アプリケーションの

クラスタ対応アプリケーションの OC4J への移行 への移行 への移行 への移行

クラスタリングとロード・バランシングは、エンタープライズ・アプリケーション・サー バーの主要機能です。これらの機能によって、アプリケーション・サーバーは、可用性が高 く、フォルト・トレラントでスケーラブルなものになります。ロード・バランサは、個々の ノードの状態をインスタンスのクラスタにレプリケートすることによって、あるノードに障 害が発生してもその状態情報が別のノードで保持されるようにします。OC4Jでのクラスタ 構成によって、次のことが実現されます。

リソース使用の最大化

アプリケーションがマシンのリソースを最大限に利用できないときも、OC4Jはプロ セッサの能力をより効率的に使用するようにします。

スループットの最大化

OC4Jでは、1つのアプリケーションが同時に処理できるリクエストの数が大幅に増加し ています。

シングル・ポイント障害によるリスクの最小化

OC4Jでは、構成が冗長化されます。あるインスタンスに障害が発生しても、他のイン スタンスが引き続きリクエストを処理します。

WebSphereおよびOracle Application ServerのOC4Jのどちらでも、クラスタリングとセッ

ション・フェイルオーバーのロード・バランシングが可能です。OC4Jでは、クラスタリン グを使用しないRMIリクエストおよびレスポンスのHTTPトンネリングもサポートしてい

ます。WebSphere上で実行されているクラスタ対応アプリケーションは、OC4Jインスタン

ス(複数のOC4Jプロセスからなり、クラスタに相当)への移行が可能です。

OC4J構成には、アイランドの概念が採用されています。アイランドとは、同一のアプリ ケーション構成を持ち、アプリケーションの状態がレプリケートされるOC4Jプロセスの集 合です。アイランドは、OC4Jインスタンス内のプロセスからなるサブセットです。