Oracle Joltのサーブレット接続性の機能を利用すると、HTTPリクエストに対する処理をHTTPサーブレットを使用して行い、サーバー側のJavaタスクを実行することができます。Joltでは、Java Web Serverバージョン1.1.3以上のサーブレット接続性の機能がサポートされており、標準的なサーブレット・エンジンがサポートされています。Joltのセッション・プール・クラスを使用すると、単純なHTMLクライアントからも一般的なサーブレットをサポートするWebサーバーに接続することができます。これで、すべてのJoltトランザクションは、クライアント側のアプレットやアプリケーションのかわりに、Webサーバー側のサーブレットで処理されます。
サーブレット機能により、HTMLクライアントはOracle Tuxedoに直接接続せずにOracle Tuxedoサービスを呼び出すことができます。HTMLクライアントは、HTTPプロトコルを使用してWebサーバー(Oracle Tuxedoサービスに対するリクエストをサーブレットを使って処理するサーバー)に接続します。Webサーバー上のサーブレットは、Joltセッションを使用してOracle Tuxedoサービスに対するリクエストを管理します。つまり、Joltサーバー・ハンドラ(JSH: Jolt Server Handler)またはJoltサーバー・リスナー(JSL: Jolt Server Listener)を介してOracle Tuxedoサーバーに接続し、Oracle Tuxedoサービスに対するリクエストを作成します。
この機能により、さまざまなHTMLクライアントがリモートのOracle Tuxedoサービスのリクエストを作成できるようになります。これで、すべてのJoltトランザクションはサーバー側で処理されます。元のHTMLクライアントを変更する必要はありません。したがって、単純な構造のHTMLクライアントで処理することが可能になり、HTMLクライアントの管理も容易になります。
サーブレットとは、クライアントの代わりにサーバー上で呼び出され、実行されるJavaクラスのことです。アプレットがクライアント側で実行されるのに対し、サーブレットはサーバー側で実行されます。HTTPサーブレットは、受け取ったHTTPリクエストを処理し、それに対してHTTPレスポンスを送信するJavaクラスです。HTTPサーブレットはHTTPサーバーに常駐しており、サーブレット・クラスJavaSoft javax.servlet.http.Httpの拡張である必要があります。これで、サーブレットは、一般的なサーブレット・エンジンのフレームワークで動作します。
Joltのサーブレット接続性機能を使用すると、一般的なHTTPサーブレットでJolt機能を利用することができます。Joltサーブレットは、次のJoltクラスを使用してHTTPリクエストを処理します。
このクラスには、Oracle Tuxedoサービスの入力パラメータと出力パラメータを表すデータ要素が含まれています。HTMLのフィールド名と値をjavax.servlet.http.HttpServletRequest
オブジェクトからインポートするメソッドが用意されています。
このクラスは、Joltセッション・プール・マネージャと、関連する1つまたは複数のJoltセッション・プール用のスタートアップ・クラスです。必要に応じてセッション・プール・マネージャを作成し、最低限必要な数のセッションを設定してセッション・プールを開始します。Joltセッション・プール・マネージャは、1つまたは複数の名前付きセッション・プールを内部的に追跡します。
このクラスはbea.jolt.pool.PoolManagerConfig
から派生しています。呼出し側はPropertiesオブジェクトまたはHashtableオブジェクトを静的なstartup()
メソッドに渡してセッション・プールを作成したり、静的なgetSessionPoolManager()
メソッドを渡してbea.jolt.pool.servlet.ServletSessionPoolManager
クラスのセッション・プール・マネージャを取得することができます。
このクラスには、ServletResultオブジェクトの各フィールドをString型で取得するメソッドが用意されています。
このクラスには、Javaサーブレットで使用するセッション・プールが用意されています。セッション・プールは、Oracle Tuxedoシステムに対する1つ以上の接続(セッション)を表します。このクラスには、Oracle Tuxedoサービスの入力パラメータをjavax.servlet.http.HttpServletRequest
オブジェクトとして受け入れるコール・メソッドが用意されています。
このクラスは、サーブレットに固有のセッション・プール・マネージャです。ServletSessionPool
クラスの1つ以上のセッション・プールの集まりを管理します。このクラスには、ServletSessionPoolManagerそのものおよびその中のセッション・プールの両方を作成するためのメソッドが用意されています。これらのメソッドは、セッション・プール用の管理APIの一部です。
HTTPサーブレットを作成と登録を行う前に、まずJoltサーブレット接続性をサポートするパッケージ(jolt.jar
、joltjse.jar
、servlet.jar
)をインポートする必要があります。HTTPサーブレットは、javax.servlet.http.HttpServletの拡張です。作成したHTTPサーブレットは、一般的なサーブレットをサポートするWebサーバーに登録します。カスタマイズしたサーブレットは、HTTP機能を持つ標準のHTTPサーブレットと同様に扱われます。
各HTTPサーブレットには、特定のURLの形式が登録されます。あるURLがリクエストされると、対応するサーブレットが呼び出され、リクエストが処理されます。
サーブレットの登録方法については、お使いのWebサーバーのドキュメントを参照してください。
Joltソフトウェアには、Joltサーブレット・クラスを使用してサーブレット接続性を解説するサンプル・アプリケーションが用意されています。次の3つのサンプルが用意されています。
Joltサーブレット・クラスの使用方法を学ぶには、これらのサンプルで示されているサンプル・コードを参照してください。
Joltサンプル・アプリケーションのコードを表示するには、Jolt APIクライアント・クラス(通常は、Joltのインストール時のオプション項目)をインストールする必要があります。指定したディレクトリにこれらのクラスをインストールしたら、次のディレクトリにあるサンプル・アプリケーション・ファイルを選択してください。
<Installation directory>\udataobj\jolt\examples\servlet
サンプル・コードを表示するには、Microsoftのメモ帳などのテキスト・エディタを使って、サンプル・アプリケーションごとにJavaファイルを開いてください。
Joltにはsimpapp
というサンプル・アプリケーションがあります。simpapp
は、サーブレットでどのようにServlet Connectivity for Oracle Tuxedoが使用されるかを示しています。SimpAppサンプルでは、次のサーブレット・タスクが示されています。
この例では、サーブレットがOracle Tuxedoに接続し、その任意のサービスを呼び出す仕組みを例示します。サービスはsimpapp.html
ファイルから呼び出す必要があります。サーブレットは初期化時にセッション・プール・マネージャを作成します。これは、doPost()
メソッドが呼び出される時にセッションを取得するために使用されます。このセッションは、ポストされた「SVCNAME
」引数によって記述された名前を使用してOracle Tuxedoのサービスに接続するために使用されます。この例では、サービスは「TOUPPER
」と呼ばれ、ポストされた「STRING
」引数のテキストを大文字に変換し、結果を自動生成されたHTML内のクライアント・ブラウザに返します。
注: | このサンプルではWebLogic Serverが使用されます。 |
jolt.jar
)とServlet Connectivity for Oracle Tuxedoクラス・ライブラリ(joltjse.jar
)をインストールします。Webアプリケーション・サーバーでクラス・ファイルの抽出が必要であれば、クラス・ファイルを抽出します。SimpAppServlet.java
をコンパイルします。必ず、標準のJDK 1.1.x classes.zip
、JSDK 1.1クラス、Joltクラス・ライブラリおよびServlet Connectivity for Oracle Tuxedoクラス・ライブラリをclasspath内に指定してください。javac -classpath $(JAVA_HOME)/lib/classes.zip:$(JSDK)/lib/servlet.jar:
$(JOLTHOME)/jolt.jar:$(JOLTHOME)/joltjse.jar:./classes
-d ./classes SimpAppServlet.java
注: | SimpAppServletのパッケージ名はexamples.jolt.servlet.simpapp です。 |
simpapp.html
とsimpapp.properties
の2ファイルをpublic HTMLディレクトリに置きます。simpapp.properties
ファイルを変更します。appaddrlist
とfailoverlist
をJoltサーバーの正しいホストおよびポートに変更します。SimpAppでセキュリティが有効になっている場合は、正しいOracle Tuxedo認証情報を指定します。例:#simpapp
#Fri Apr 16 00:43:30 PDT 1999
poolname=simpapp
appaddrlist=//host:7000,//host:8000
failoverlist=//backup:9000
minpoolsize=1
maxpoolsize=3
userrole=tester
apppassword=appPass
username=guest
userpassword=myPass
config.xml
ファイルの次のセクションを追加します。<Application
Deployed="true"
Name="simpapp"
Path=".\config\mydomain\applications"
>
<WebAppComponent
Name="simpapp"
Targets="myserver"
URI="simpapp"
/>
</Application>
simpapp.html
にアクセスするには、次のように入力します。 BankApp
アプリケーションは、サーブレットがPageCompiledServletを使い、Servlet Connectivity for Oracle Tuxedoを利用してどのように作成されるかを示しています。BankApp
では以下の方法を説明します。
jolt.jar
)とServlet Connectivity for Oracle Tuxedoクラス・ライブラリ(joltjse.jar
)をインストールします。Webアプリケーション・サーバーでクラス・ファイルの抽出が必要であれば、クラス・ファイルを抽出します。bankapp.properties
ファイルをすべてコピーします(WebLogicの場合は$WEBLOGIC/myserver/public_html
)。bankapp.properties
tellerForm.html
inquiryForm.html
depositForm.html
withdrawalForm.html
transferForm.html
InquiryServlet.jhtml
DepositServlet.jhtml
WithdrawalServlet.jhtml
TransferServlet.jhtml
bankapp.properties
ファイルを変更します。appaddrlist
とfailoverlist
をJoltサーバーの正しいホストおよびポートに変更します。BankAppでセキュリティが有効になっている場合は、正しいOracle Tuxedo認証情報を指定します。例:#bankapp
#Fri Apr 16 00:43:30 PDT 1999
poolname=bankapp
appaddrlist=//host:8000,//host:7000
failoverlist=//backup:9000
minpoolsize=2
maxpoolsize=10
userrole=teller
apppassword=appPass
username=JaneDoe
userpassword=myPass
「Admin」サンプル・アプリケーションでは、以下のサーブレットのタスクを説明します。
サーブレットの作成方法と使用方法の詳細は、以下のサイトを参照してください:
Oracle WebLogicサーブレットに関するドキュメント
http://e-docs.bea.com/wls/docs81/adminguide/index.html
http://e-docs.bea.com/wls/docs81/servlet/index.html
http://e-docs.bea.com/wls/docs81/javadocs/index.html
http://jserv.java.sun.com/products/java-server/documentation/
webserver1.1/index_developer.html
http://servlet-interest@java.sun.com