![]() |
iPlanet Web Server, Enterprise Edition サーブレットに関するプログラマーズガイド |
第 3 章 サーブレットの使用方法
この章では、iPlanet Web Server 6.0 でサーブレットを有効にする方法および構成する方法について説明します。 この章は、以下の節から構成されています。
サーブレットを実行するためにサーバで必要なもの
サーブレットを実行するためにサーバで必要なもの
iPlanet Web Server 6.0 には、Java サーブレットの開発に必要なファイルがすべて含まれています。 servlet.jar ファイルは、以下の iPlanet Web Server 6.0 インストールディレクトリにあります。servlet.jar ファイルを Java コンパイラにアクセス可能にしてから、サーブレットのコンパイルを行います。 CLASSPATH に servlet.jar ファイルを指定してください。
iPlanet Web Server 6.0 には JRE (Java Runtime Environment) が付属していますが、ライセンス制限のため JDK (Java Development Kit) は付属していません。 サーバは、JRE だけまたは JDK を使用してサーブレットを実行できます。 JDK のインストールの詳細は、「JSP を実行するためにサーバで必要なもの」 を参照してください。
ユーザインタフェースの使用
ユーザインタフェースを使用してサーブレットの設定を行う方法については、オンラインヘルプの以下の内容を参照してください。次のページは Web Server Administration Server の「Global Settings」タブにあります。
「Configure JRE/JDK Paths」ページ
次のページはサーバマネージャの「Java」タブにあります。次のページはクラスマネージャの「Virtual Servers」タブにあります。 クラスマネージャを開くには、サーバマネージャの「Virtual Server Class」タブにある Manage Classes ページを選択し、リストからクラスを選択して「Manage」ボタンを押します。
「Java Web Apps Settings」ページ
サーブレットの有効化
サーブレットを有効にするには、サーバマネージャの「Java」タブを選択し、「Enable/Disable Servlets/JSP」タブを選択します。 サーバ全体に対してサーブレットを有効にするには、「Enable Java Globally」ボックスをクリックします。 単一の仮想サーバクラスに対してサーブレットを有効にするには、「Enable Java for Class」ボックスをクリックします。 サーバ全体に対して Java を有効にしてから、単一クラスに対してサーブレットを有効にします。 デフォルトでは、Java はサーバ全体および各仮想サーバクラスに対して有効です。
クライアントでサーブレットを使用できるようにする方法
以下のどちらかの方法で、クライアントでのサーブレットの使用が可能になります。
サーブレットを Web アプリケーションに設定して、その Web アプリケーションを導入する。 その方法の詳細は、第 2 章「Web アプリケーション」 を参照してください。
デフォルトの仮想サーバでサーブレットを設定する。 これは、iPlanet Web Server 4.x との下位互換用に提供されています。 その方法の詳細は、第 8 章「古いバージョンのサーブレットおよび JSP の構成」 を参照してください。
<SERVLET> SHTML タグ
iPlanet Web Server 6.0 は、Java Web Server で紹介されたように、<SERVLET> タグをサポートしています。 このタグを使用して SHTML ファイルにサーブレットの出力を組み込むことができます。 構成を変更しないで、この動作を有効にできます。 SSI とサーブレットがどちらも有効の場合、<SERVLET> タグも有効になります。<SERVLET> タグの構文は、その他の SSI コマンドとはやや異なり、<APPLET> タグの構文に似ています。
<servlet name=name code=code codebase=path iParam1=v1 iParam2=v2>
<param name=param1 value=v3>
<param name=param2 value=v4>
.
.
</servlet>サーブレットが Web アプリケーションの一部である場合、code パラメータが必要でその他のパラメータは無視されます。 code パラメータには以下の値が設定されている必要があります。
Web アプリケーションの web.xml ファイルで定義されている url-pattern 要素の値。 web.xml の詳細は、以下の Web サイトにある Servlet 2.2 API 仕様を参照してください。
たとえば、以下のタグ構文を SHTML ファイルに指定する場合、
Web アプリケーションの web-apps.xml ファイルで定義されている uri 属性の値。 web-apps.xml の詳細は、第 2 章「Web アプリケーション」を参照してください。
- http://java.sun.com/products/servlet/index.html
<servlet name=pparams code="/PrintApp/PrintParams">
</servlet>web-apps.xml ファイルに以下の値を指定する必要があります。
<web-app uri="/PrintApp" dir="/iws60/https-server.iplanet.com/acme.com/webapps/PrintApp"/>
web.xml ファイルに以下のタグ構文も指定する必要があります。
<servlet>
<servlet-name>pparams</servlet-name>
<servlet-class> PrintPackage.PrintParams </servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>pparams</servlet-name>
<url-pattern> /PrintParams </url-pattern>
</servlet-mapping>また、web.xml ファイルにサーブレットのすべての初期設定パラメータも指定する必要があります。
古いバージョン (iPlanet Web Server 4.x) のサーブレットの場合、サーブレットの .class ファイルを指定する code パラメータが必要です。 servlets.properties ファイルにサーブレットの定義がなく、.class ファイルが <SERVLET> タグが指定されている HTML ファイルとは違うディレクトリにある場合、codebase パラメータが必要です。 古いバージョンのサーブレットは、デフォルトの仮想サーバで構成されている必要があり、web.xml ファイルは必要ありません。
SSI コマンドの詳細は、iPlanet Web Server の『プログラマーズガイド』を参照してください。
サーブレットの出力
デフォルトで iPlanet Web Server がバックグラウンドで起動すると、サーブレットの System.out および System.err 出力は Web サーバのエラーログに送信されません。これは、サーブレットが iPlanet Web Server の外部にあるためです。UNIX では、server_root/https-server_id/start ファイルを変更して、フォアグラウンドで iPlanet Web Server を起動するか、サーブレットの出力をリダイレクトできます 。最初に、 server_root/https-server_id ディレクトリで以下のコマンドを入力します。
このコマンドで server_root/bin/https/bin ディレクトリに入れます。 次に、以下のコマンドを入力します。
./ns-httpd -d server_root/https-server_id/config
Windows NT では、以下の行を magnus.conf ファイルに指定すると、iPlanet Web Server を Windows NT コンソールで、フォアグラウンドで実行することができます。
Init fn="nt-console-init" stdout=console stderr=console
JVM の構成
必要に応じて、サーバマネージャのインタフェースで 「Java」>「Configure JVM Attributes」ページを使用するか、jvm12.conf を編集して JVM のパラメータを構成できます。 JVM の設定の詳細は、付録 C「JVM の構成」を参照してください。iPlanet Web Server の JVM 用のデフォルト設定は、サーブレットの実行に適しています。 ただし、設定の変更が必要な場合もあります。 たとえば、サーブレットまたは Bean ファイルで JAR ファイルを使用する場合、JVM クラスパスに JAR の場所を追加することができます。
サーブレットのパフォーマンスの最大化
サーブレットのパフォーマンスを向上させるため、以下のガイドラインを考慮してください。
jvm12.conf ファイルには設定パラメータ、jvm.stickyAttach があります。 このパラメータの値を 1 に設定すると、JVM に接続していることをスレッドが認識するため、AttachCurrentThread および DetachCurrentThread 呼び出しが排除されて要求の処理速度が向上します。 ただし、そのために問題が起こる場合もあります。 再利用されたスレッドのその他の処理が、ガベージコレクタによって任意に中断されることがあります。
StackSize 指令を使用して magnus.conf のフロントエンドスレッドのスタックサイズを増やします。スレッドプールを使用している場合は、各プールのスタックサイズのパラメータを増やします。 詳しくは、iPlanet Web Server の『NSAPI プログラマーズガイド』を参照してください。
- ほかのサブシステムでこの問題が起こらないようにするにはスレッドプールを使用します。 スレッドプールの詳細は、iPlanet Web Server の『管理者ガイド』を参照してください。
ヒープサイズを増やしてガベージコレクションを容易にします。 jvm.minHeapSize または maxHeapSize、あるいは「Configure JVM Attributes」ページを使用します。
必要のない例がある場合は、jvm.classpath からはずします。 jvm.include.CLASSPATH=0 に設定すると、CLASSPATH 環境変数を継承しないようにできます。
JIT コンパイラが有効になっているときにアプリケーションが深い再帰処理を使用すると、iPlanet Web Server 6.0 のスタック空間が不足することがあります。特に、デフォルトのスタックサイズが小さい UNIX プラットフォームで、または非常に複雑な JSP ページが使用されている場合には、注意が必要です。
サーブレットセッションに使用されるセッション ID ジェネレータでは、暗号化機能が強化された固有の乱数生成アルゴリズムが採用されています。 これにより、処理速度の遅い古いマシンを使用している場合は、パフォーマンスに関する問題が発生することがあります。 詳しくは、第 6 章「セッションマネージャ」を参照してください。
- magnus.conf ファイルの StackSize 指令を使用してスタック空間を設定できます。 詳しくは、 iPlanet Web Server の『NSAPI プログラマーズガイド』を参照してください。
注 Java を使用しないで SSL サーバを稼動している場合、サーバの起動スクリプトで SmartHeap を有効にしてパフォーマンスを向上させることができます。 ただし、SmartHeap には Java との互換性はありません。
前へ 目次 索引 DocHome 次へ
Copyright © 2000 Sun Microsystems, Inc. Some preexisting portions Copyright © 2000 Netscape Communications Corp. All rights reserved.
Last Updated September 17, 2001