2. 他APサーバ(Tomcat)からWebOTXへの移行ガイド

2.1. はじめに

Webシステム構築において、コスト削減の面からオープンソース導入が注目されています。しかし、保守運用までを見据えた場合、本当にコスト削減が達成できるのか、という疑問の声もよく耳にします。

WebOTX V8シリーズでは、サン・マイクロシステムズ社が中心に仕様策定した、エンタープライズ領域のJava仕様「Java Platform, Enterprise Edition 5 (Java EE 5)」に準拠した製品を提供しています。WebOTX ASは、その機能群の中のWeb層として、Apache TomcatプロジェクトのオープンソースTomcat 6.0をベースにサーブレットやJSPなどのWebアプリケーション実行環境(Webコンテナ)を組み込んでいます。

WebOTX V8.4で提供するWebコンテナは、Apache Tomcat 6.0.30 をベースに品質の改良、機能の追加、性能の向上、運用性の強化などを施しています。このため、現在Apache Tomcat (以下、略してTomcatと呼びます) 上で動作しているWebアプリケーションを少ない労力でWebOTXに移行でき、かつ、システムの信頼性、運用性、性能等の向上を手に入れることができます。

2.1.1. 対象読者

本章は、既にTomcatを利用して何らかのシステムを運用している方や、利用経験のある方、Tomcatの知識を有している方などを対象に、既存のTomcatによる構築済みシステムをWebOTXに移行する際の作業を支援するガイドです。
また、WebOTX V8.3以前や、その他のAPサーバ(JRun、WebLogic、WebSphereなど)からWebOTX V8.4に移行する際の作業も支援します。

対象とする移行パターンは以下のとおりです。

Tomcat 3.x → WebOTX V8.x

Tomcat 4.x → WebOTX V8.x

Tomcat 5.0.x → WebOTX V8.x

Tomcat 5.5.x → WebOTX V8.x

Tomcat 6.x → WebOTX V8.x

WebOTX V5.x → WebOTX V8.x

WebOTX V6.x → WebOTX V8.x

WebOTX V7.x → WebOTX V8.x

WebOTX V8.1-V8.3 → WebOTX V8.4

その他のAPサーバ(JRun、WebLogic、WebSphereなど) → WebOTX V8.x

2.2. ソフトウェア条件

WebOTXがサポートするソフトウェアについて説明します。

WebOTXに移行することにより、J2SE SDKやデータベースのバージョンを変更する場合、関連するソフトウェアのバージョンアップの必要性を確認してください。

詳細については、[ セットアップガイド > 1. 使用上の条件 ] をご覧ください。

2.2.1. 対象プラットフォーム

WebOTX がサポートするOSとJ2SE SDKのバージョンは以下を参照してください。

2.2.2. Webサーバ

WebOTX がサポートする外部Webサーバは以下を参照してください。

2.2.3. データベース

WebOTX がサポートする対象のデータベースは以下を参照してください。

2.2.4. 同梱するライブラリ

WebOTXに同梱しているライブラリとバージョンは次の表のとおりです。

表2.2.4-1
名称 V5.3V6.1V6.22 V6.31V6.4V6.50.02 V7.11.08V8.12V8.2 V8.31V8.4V8.42
Java Beans Activation Framework (JAF) -1.0.21.0.2 1.0.21.0.21.0.2 1.0.21.0.21.0.2 1.0.2 1.0.2 1.0.2
JavaMail -1.3.11.3.1 1.3.11.3.11.3.1 1.3.11.3.11.3.1 1.4 1.4 1.4
JAXP -1.2.51.2.5 1.2.51.2.51.2.5 1.3.041.3.041.3.04 1.3.04 1.3.04 1.3.04
Ant -1.5.41.5.4 1.5.41.5.41.5.4 1.6.51.7.01.7.0 1.7.1 1.8.2 1.8.4
Jakarta Commons BeanUtiles (*1) -1.6.11.6.1 1.7.01.7.01.7.0 1.7.01.7.01.7.0 1.8.0 1.8.0 1.8.0
Jakarta Commons Codec (*1) -1.21.3 1.31.31.3 1.31.31.3 1.3 1.4 1.4
Jakarta Commons Collections (*1) -2.112.11 2.112.112.11 2.112.112.11 2.11 2.11 2.11
Jakarta Commons Digester (*1) -1.51.6 1.71.71.8 1.81.81.8 1.8 1.8 1.8
Jakarta Commons Discovery (*1) -0.20.2 0.20.20.4 0.40.40.4 0.4 0.4 0.4
Jakarta Commons EL (*1) -1.01.0 1.01.01.0 1.01.01.0 1.0 1.0 1.0
Jakarta Commons FileUpload (*1) 1.01.01.0 同梱なし同梱なし同梱なし 同梱なし同梱なし同梱なし 同梱なし 同梱なし 同梱なし
Jakarta Commons Launcher (*1) -1.0-dev1.1 1.11.11.1 1.11.11.1 1.1 1.1 1.1
Jakarta Commons Logging (*1) 1.0.41.0.41.0.4 1.0.41.0.41.1 1.11.1.11.1 1.1 1.1.1 1.1.1
Jakarta Commons Modeler (*1) -1.11.1 1.11.12.0 2.02.02.0 2.0 2.0 2.0
Jakarta Regexp -1.31.3 1.41.41.4 1.51.51.5 1.5 1.5 1.5
Log4j -1.2.81.2.8 1.2.131.2.131.2.14 1.2.141.2.15(*1)1.2.15(*1) 1.2.15(*1) 1.2.15(*1) 1.2.17(*1)
XML Xerces 2 Java Parser -2.5.02.5.0 2.5.02.5.02.5.0 2.9.02.9.12.9.1 2.9.1 2.9.1 2.9.1
XML Xalan Java 2 -2.5.22.5.2 2.5.22.5.22.5.2 2.7.02.7.12.7.1 2.7.1 2.7.1 2.7.1
The Web Services Description Language
for Java Toolkit (WSDL4J)
-1.41.4 1.41.41.4 1.41.41.4 1.4 1.4(*2) 1.4(*2)

*1:パッケージ名をWebOTX独自のものに変更しているため、ユーザアプリケーションから利用できません。Webアプリケーションで利用する場合は、WEB-INF/libの下にライブラリを配置してください

*2:標準ではクラスパスに含まれておりません。ライブラリの格納先は${AS_INSTALL}/lib/wssに移動しました。利用する場合は、クラスパスに含めるようにしてください。

2.2.5. クラスのロードについて

Webアプリケーションで利用するJavaのクラスを実行するためにロードを行う機能としてクラスローダがあります。

クラスローダには階層があります。上位のクラスローダでロードされたクラスからは下位のクラスローダでロードされたクラスは参照することができません。

逆に、下位のクラスローダでロードされたクラスからは、上位のクラスローダでロードされたクラスは参照することができます。

WebOTX のクラスローダの階層は次のようになります。

domain1/lib/ext
  ↓
classpath
  ↓
WebOTX/lib
  ↓
domain1/lib
  ↓
WEB-INF/lib

また、nec-web.xml のdelegate の設定により、ロードする優先順位を決定することができます。

同じ名前のライブラリがあると、競合が発生し、優先順位の高いパスに含まれるライブラリが利用されます。

ロードされるライブラリの優先順位はdelegate=true の場合は以下のようになります。delegate の設定はWebAP のWEB-INF/nec-web.xml で設定します。

domain1/lib/ext
  ↓
WebOTX/lib
  ↓
classpath
  ↓
domain1/lib
  ↓
WEB-INF/lib

delegate=false の場合は以下のようになります。

WEB-INF/lib
  ↓
domain1/lib/ext
  ↓
WebOTX/lib
  ↓
classpath
  ↓
domain1/lib


クラスローダの詳細は、[ ドメイン構築・基本設定ガイド > 5.9. クラスローダ ] をご参照ください。

2.3. 移行作業

本章では、TomcatやWebOTX V5-V8.3などからWebOTXに移行する際に必要となる作業について説明します。

2.3.1. ディレクトリ構成

WebOTXのドメインに関連する主要なディレクトリは次のようになっています。


図2.3.1-1

2.3.2. 移行作業一覧

Tomcatの各バージョンからWebOTXに移行するための作業と、本書での説明の対応は以下のとおりです。

表2.3.2-1
移行作業 Tomcat のバージョン WebOTX のバージョン 他APサーバ 本書での説明
3.x 4.x 5.0 5.5 6.x V5.x V6.x V7.x V8.1 V8.2,
V8.3
JRun WebLogic WebSphere
パッケージの設定 2.3.2.1.
JDBCデータソースの設定 2.3.2.2.
log4jの設定 2.3.2.3.
nec-web.xmlの設定 2.3.2.4.
セキュリティポリシーの設定 2.3.2.5.
Tomcatの差異による対応 2.3.2.6.
JavaVMオプションの設定 2.3.2.7.
その他のAPサーバからの移行 2.3.9.

○:作業要  △:条件により作業要  −:不要(対応済み)

2.3.2.1. パッケージの設定

既存のJSPコードにおいて、他のクラスをインポート(import)している場合にはパッケージを指定しなければなりません。これはJDK 1.4からJavacコンパイラがJava言語仕様へ厳密にチェックするように変わったことに起因します。J2SE 1.4.0より前のバージョンでは、パッケージの指定は必要ありませんでしたが、J2SE 1.4.0以降ではパッケージの指定が必要になっています。

2.3.2.2. JDBCデータソースの設定

Tomcatでは、「conf/server.xml」ファイルを直接修正することでJDBCデータソースの設定を行いますが、WebOTXでは、JMX (Java Management Extensions) に対応した運用管理コンソールや運用管理コマンドで設定します。 WebOTXでは、データベース・サーバへの接続をファクトリ化し、JNDI API経由で接続オブジェクト参照を得る仕組みとしてJDBCデータソースを提供しています。JDBCデータソースは、分散トランザクションやコネクション・プーリングなどを考慮しているため、単にJDBCドライバのインタフェースを呼び出す場合よりも機能拡張されています。

既存のWebアプリケーションにおいてJDBCデータソースを使用している場合、JDBCデータソースを利用するための設定を行う必要があります。

2.3.2.3. log4jの設定

WebOTX Application Server V8 以降のバージョンでは、 Apache Logging Server プロジェクトの log4j のパッケージ名を変えてバンドルしており WebOTX自身のロギング機能にlog4jを利用しています。このため、既存のWebアプリケーションでlog4jを利用してログ出力している場合、WebOTX の定義を気にする事なく利用可能です。

2.3.2.4. nec-web.xmlの設定

既存のWebアプリケーションにおいて、StrutsなどのライブラリJARファイルや、WebOTX以外のCORBAライブラリをWARファイル内の「WEB-INF/lib」配下に格納している場合、また、CORBAライブラリについては、WebOTXに含まれるライブラリと重なる場合、Webアプリケーションを配備できないなどの問題が発生することがあります。Webアプリケーションを、そのままのファイル構成でご利用いただくには、nec-web.xmlでライブラリのロードに関する設定を行います。

2.3.2.5. セキュリティポリシーの設定

WebOTXは、インストール・デフォルトの定義によりJavaセキュリティ・マネージャが動作します。Javaセキュリティ・マネージャが働くことで、Webアプリケーションの実行中に、システム上のファイルや他システムへの接続などの資源に対する不用意なアクセスを制限できます。このため、現行システムでセキュリティポリシーを設定していない場合は、WebOTX移行に際してはセキュリティポリシーの設定が必要となります。 また、現行システムでセキュリティポリシーを設定している場合は、既存のセキュリティポリシー設定を移行する必要があります。

2.3.2.6. Tomcatの差異による対応

Tomcatの各バージョンの差異(ベースのTomcatバージョンの差異)により、WebOTXに移行する際に対応が必要となる場合があります。

2.3.2.7. JavaVMオプションの設定

WebOTXは、Tomcatと同様にJavaVMのオプション設定をサポートしています。このため、既存のTomcatシステムでJavaVMオプションの設定を行っている場合はWebOTXにも同様の設定を行う必要があります。詳細は 2.5.2. Java VMオプションのサポートを参照ください。

2.3.3. パッケージの設定

JSPで他のクラスをインポート (import) している場合には、パッケージの指定が必要です。

これまでJava2 SDK 1.3.1以前を使用していた場合は、そのJavacコンパイラの構文チェックが緩かったために問題とはなりませんでした。しかし、J2SE 1.4.0からは構文チェックが厳しくなり、パッケージを持たないJSPコードは、JSPをWebOTXに配備した後に行われるJSPコンパイルでエラーとなります。なお、WebOTX V8.5は、JDK 5、6*、7* をサポートします。

WebOTX がサポートするJ2SE SDKのバージョンは以下を参照してください。

J2SE 1.3.1以前のバージョンから移行する場合には、importのパッケージの指定を確認してください。

次のようにパッケージの指定のないimportはエラーとなります。

<%@ page import="Converter,ConverterHome" %>

importするクラスにパッケージの指定を追加して、importの指定をそれにあわせて修正してください。

本設定は、includeするファイルも含めて各ファイルで指定してください。


2.3.4. JDBCデータソースの設定

WebOTXのJDBCデータソースを利用するためには、WebOTX運用環境製品で提供している「統合運用管理ツール」か、標準で備わる「運用管理コマンド (otxadmin)」を利用します。ここでは、運用管理コマンドを利用する設定について説明します。

設定内容の詳細や運用機能の詳細は、WebOTXマニュアルの中の [ リファレンス集 運用管理・設定編 > 4. 運用管理コマンドリファレンス > 4.2. 運用管理コマンド(otxadmin) ]、 [ リファレンス集 運用管理・設定編 > 1. コンフィグレーション(設定一覧) ] をご参照ください。

2.3.4.1. JDBCデータソースの設定方法

運用管理コマンドよりJDBCデータソースをJNDIに登録します。

以下は、WebOTXをインストールした際にデフォルトで作成されるドメイン「domain1」上でOracleデータベース・サーバを利用するJDBCデータソースを登録するコマンド例です。

otxadmin> create-jdbc-datasource --user admin --password adminadmin 
--port 6212 --host localhost 
--dataSourceType JDBCEX_Oracle 
--jdbcMajorVersion 3 --maxPoolSize 10 
--jdbcUserName scott --jdbcPassword tiger 
--dataSourceName "jdbc:oracle:thin:@hostname:1521:ORCL" 
jdbc/MyOracle

※ 実際には1行で実行してください。

※ 各引数の詳細は、WebOTXマニュアルの [ リファレンス集 運用管理・設定編 > 4. 運用管理コマンドリファレンス > 4.2. 運用管理コマンド(otxadmin) ]、 の "create-jdbc-datasource" を参照してください。

※"jdbc:oracle:thin:@hostname:1521:ORCL" および jdbc/MyOracle 部分は環境に合わせて変更してください。

登録が成功すると次のように表示されます。

> Command create-jdbc-datasource executed successfully.

現在の設定を確認する場合は、次のコマンドを実行します。

otxadmin> list-jdbc-datasources --user admin --password adminadmin --port 6212

2.3.4.2. クラスパスの設定

Oracleデータベース・サーバに付属するJDBCドライバ (ojdbc14.jar) が配置されたディレクトリにクラスパスを設定します。 以下はdomain1ドメインにクラスパスを設定するコマンド例です。

現状のクラスパスを確認します。

・スタンダードモードの場合

otxadmin> get server.java-config.server-classpath

・アドバンスドモードの場合

otxadmin> get tpsystem.applicationGroups.apg.processGroups.pg.setenvList

※ 実際には1行で実行してください。

現状のクラスパスにJDBCドライバのクラスパスを追加設定します。

・スタンダードモードの場合

otxadmin> set server.java-config.server-classpath=…;/temp/ojdbc14.jar

・アドバンスドモードの場合

otxadmin> add-pg-setenv --apgroup <APG名> --setenv CLASSPATH --value …;/temp/ojdbc14.jar <PG名>

※ <APG名> にはアプリケーショングループ名、<PG名> にはプロセスグループ名が入ります。

※ "/temp/ojdbc14.jar"部分は環境に合わせて変更してください。

※ 実際には1行で実行してください。

※ setコマンドおよびadd-pg-setenvコマンドは指定の値で上書きしますので、既存の設定値を含めて設定してください。

設定が完了したらドメインを再起動してください。

2.3.5. log4jの設定

Tomcatでは、Webアプリケーション毎にログ出力方法を制御する場合は、各Webアプリケーションの WEB-INF/classes 以下に log4j.properties または log4j.xml という名前で設定ファイルを配置します。そのほかに、システム全体で設定ファイルを指定する方法もあります。この場合、Tomcat3.x ならばTOMCAT_OPTS 、Tomcat4.x 以降ならばCATALINA_OPTS 環境変数へ指定します。

以下は、Tomcat4.xで、システム全体でlog4jの設定を行っている場合の移行の例です。WEB-INF/classes 配下に log4j の定義ファイルを含めている場合はこの設定は不要です。

【log4.configurationを使用した設定例 (tomcat4.xの例)】

環境変数への設定(unixの場合)

export CATALINA_OPTS="-Dlog4j.configuration=file:///home/foo/log4j.xml"

【運用管理コマンドでの設定(WebOTXの例)】

・スタンダードモードの場合

otxadmin > create-jvm-options "-Dlog4j.configuration=file\:///${com.nec.webotx.instanceRoot}${file.separator}config${file.separator}{log4j 定義ファイル名}.xml"

・アドバンスドモードの場合

otxadmin > add-pg-javasystem-property --apgroup <APG名> --javasystemprop log4j.configuration --value file\:///${com.nec.webotx.instanceRoot}${file.separator}config${file.separator}{log4j 定義ファイル名}.xml

※ <APG名> にはアプリケーショングループ名が入ります。

※ 実際には1行で実行してください。

Webアプリケーションでlog4j APIを呼び出して、利用するlog4j定義ファイルを読み込む方法についての説明は、ここでは省略します。

前述の通り、WebOTX V8.x ではログ出力に WebOTX 独自のlogging モジュールを利用しています。よって、ユーザアプリケーションでは、WEB-INF/classes 配下に定義ファイルを置くか、システムプロパティに設定するかのどちらかで log4j を利用することが可能です。

2.3.6. WebOTX独自のWebアプリケーション配備記述子(nec-web.xml)

Webアプリケーションには、Servlet仕様にしたがって配備記述子 (Deployment Descriptor) と呼ばれる実行の振る舞いを宣言するXML形式の設定ファイル (web.xml) を含めます。 WebOTX V6以降では、その標準のServlet仕様に規定されたweb.xml要素を拡張した、nec-web.xmlを追加しています。Tomcatの設定項目に対応するnec-web.xmlへの設定の詳細は[ 2.5. Tomcat設定項目 > 2.5.1. Tomcat設定項目との対応 ]を参照してください。

ライブラリのロードの設定を変更したい場合や、BASIC/FORM認証をする際のユーザ名や権限の設定を追加したい場合は、nec-web.xmlに該当する情報を設定しなければなりません。

2.3.6.1. BASIC認証、FORMベース認証を利用する場合の設定

WebOTXでは、BASIC認証かFORMベース認証を利用する場合、次の箇所を設定します。

【web.xmlの記述例(抜粋)】

<security-constraint>
   <display-name>Server Configuration Security Constraint</display-name>
      <web-resource-collection>
         <web-resource-name>Protected Area</web-resource-name>
          <!-- Define the context-relative URL(s) to be protected -->
          <url-pattern>*.jsp</url-pattern>
          <url-pattern>*.do</url-pattern>
          <url-pattern>*.html</url-pattern>
          <url-pattern>/WebAPManage/*</url-pattern>
      </web-resource-collection>
      <auth-constraint>
        <!-- Anyone with one of the listed roles may access this area -->
          <role-name>stRole</role-name>
      </auth-constraint>
  </security-constraint>

  <!-- Login configuration uses form-based authentication -->
  <login-config>
      <auth-method>FORM</auth-method>
        <realm-name>file</realm-name>
                    
        <form-login-config>
            <form-login-page>/login.jsp</form-login-page>
             <form-error-page>/error.jsp</form-error-page>
        </form-login-config>
    </login-config>

    <!-- Security roles referenced by this web application -->
    <security-role>
        <description>
             The role that is required to log in to the Administration Application
        </description>
       <role-name>stRole</role-name>
    </security-role>
【nec-web.xmlの記述例(抜粋)】

  <context-root>BasicAuthServlet24</context-root>
                
  <security-role-mapping>
    <role-name>stRole</role-name>
               
    <principal-name>admin3</principal-name>
                     
    <group-name>stGroup</group-name>
                  
  </security-role-mapping>

※ ロール名などをnec-web.xmlに指定する方法は、 [ アプリケーション開発ガイド(Java EE) > 2. Webアプリケーションの開発 > 2.2. プログラミング・開発ガイド > 2.2.13. Webアプリケーションのデプロイ > 2.2.13.4. web.xmlデプロイメント記述子エディタ ] の、[nec-web.xmlファイルの要素] をご覧ください。

2.3.6.2. クラスロード優先順位の設定

nec-web.xmlに"delegate=false"の設定をすることにより、クラスロードの優先順位の変更を行うことができます。
nec-web.xmlファイルの格納場所およびファイルの内容は次のとおりです。

${INSTANCE_ROOT}/applications/j2ee-modules/Webアプリケーション毎のディレクトリ/WEB-INF

【nec-web.xml】

<?xml version="1.0" encoding="UTF-8"?>
<nec-web-app xmlns="http://java.sun.com/xml/ns/j2ee">
  <context-root>context_name</context-root>
・・・Webアプリケーションのコンテキスト名
  <class-loader delegate="false"/>
・・・委譲モデル(ロード要求を受けた場合、まずは要求を親のクラスローダに委譲)を使用しない場合は、falseを指定
</nec-web-app>

※nec-web.xmlはアプリケーション配備時にアプリケーションディレクトリ内("<ドメインディレクトリ>/applications/j2ee-module/<アプリケーション名>/WEB-INF" 配下)に自動的には生成されません。"<ドメインディレクトリ>/generated/xml/<アプリケーション名>/WEB-INF" 配下に生成されますので、必要に応じてコピーして使用してください。nec-web.xml が含まれない場合、Servlet のバージョンに関わらず delegate のデフォルト値は常に trueになります。

nec-web.xmlを変更した場合は、変更したnec-web.xmlを、WebアプリケーションのWEB-INF配下に再配置します。

WEB-INF下に配置後、次のいずれかの方法で配備を行ってください。

・WARファイルを作成して配備

・ディレクトリ指定で配備

配備については、2.4.4. 配備方法をご覧ください。

2.3.6.3. 利用する場合に設定が必要なパッケージ

Webアプリケーション内に配置したクラスのうちパッケージ名が以下で始まるクラスは参照することができません。この仕様はServlet仕様での勧告(javaxなどのJ2SE、J2EEクラスをWAR内のライブラリでオーバライドさせるべきではない)に基づくものです。詳細はServlet 2.4の9.7.2節を参照してください。
それにより、WEB-INF/lib配下のこれらのファイルを読み込む場合は以下の設定が必要になります。

対象パッケージ名
"javax"
"sun"
"org.xml.sax"
"org.w3c.dom"
"org.apache.xerces"
"org.apache.xalan"
"org.apache.taglibs.standard"
"com.sun.faces"

【nec-web.xmlでの設定方法】
<nec-web-app>タグの"property"に"overrideablejavaxpackages"を追加します。複数設定する場合はカンマで区切って指定します。
反映させるにはWebアプリケーションを更新して、更新したアプリケーションを配備し直してください。

※ org と指定した場合、 org.apache.xerces 等の指定したパッケージ配下全てに効果があります。

<?xml version="1.0" encoding="UTF-8"?>
<nec-web-app>
  <context-root>context_name</context-root>
  <class-loader delegate="true">
   <property name="overrideablejavaxpackages" value="javax"/>
  </class-loader>
</nec-web-app>

※JAXB2.0を利用しているアプリケーションを動作させるためにもこの設定が必要となります。以下の例を参考にnec-web.xmlを追加してください。

<?xml version="1.0" encoding="UTF-8"?>
<nec-web-app>
  <context-root>context_name</context-root>
  <class-loader delegate="false">
   <property name="overrideablejavaxpackages" value="javax,sun,org"/>
  </class-loader>
</nec-web-app>

※overrideablejavaxpackages の設定をドメイン全体で有効にするには、processLauncher.xmlに "com.nec.webotx.enterprise.overrideablejavaxpackages"の設定を行います。 次の内容を参考にして${AS_INSTALL}/lib/processLauncher.xmlを編集してください。

<?xml version="1.0"?>
<processes>
    <process name="webotx-server">
            :
        <sysproperty key="com.nec.webotx.enterprise.overrideablejavaxpackages"
            value="javax.help,javax.portlet,パッケージ名"/>
            :

2.3.6.4. Java Server Faces(JSF)のアプリケーションを利用するための設定

JSF のアプリケーションを利用する場合、デフォルトでは delegate の値にかかわらず、WebOTX が持っている JSF の実装を利用して動作します。 ユーザのアプリケーションにバンドルされている JSF の実装を利用したい場合、 nec-web.xml に以下の例を参考に useBundledJsf=true の設定を追加してください。

【nec-web.xml】

<?xml version="1.0" encoding="UTF-8"?>
<nec-web-app>
  <context-root>context_name</context-root>
  <class-loader delegate="false"/>
 <property name="useBundledJsf" value="true"/>
</nec-web-app>

useBundledJsf=true を指定した場合、[ 2.3.6.3. 利用する場合に設定が必要なパッケージ ]にあるパッケージのうち "javax.faces", "com.sun.faces" は自動で設定されるため、明示的に設定する必要はありません。

※アプリケーションで特定の <listener> を先に読み込ませる必要がある場合、 先に読み込ませたいリスナの定義を web.xml のリスナ定義の最初に追加してください。
例として、glassfish の JSF 実装のメソッド javax.faces.FactoryFinder.getFactory() メソッドを呼び出す場合、 jsf-core.tld に定義された ConfigureListener を最初にロードする必要があります。 この場合、web.xml に下記例のように設定を行ってください。

【web.xmlの記述例(抜粋)】

<context-param>
   …
</context-param>

<!-- 最初に追加 -->
<listener>
   <listener-class>com.sun.faces.config.ConfigureListener</listener-class>
</listener>

<listener>
   <listener-class>nonjsp.lifecycle.XulServletContextListener</listener-class>
</listener>

<servlet>
   <servlet-name> ...
</servlet>

…

2.3.6.5. no-cache の設定

WebOTX ではセキュリティの制限がかかったアプリケーションへのアクセスの際に no-cache ヘッダを付加します。 V8.x のデフォルトではセキュリティのかかったアプリケーション全体へのアクセスに対して no-cache ヘッダを付加しますが、 V7.x 以前の WebOTX ではセキュリティの範囲内だけに no-cache ヘッダを付加します。 例として、web.xml に以下の記述がある場合、V7.x 以前の WebOTX では *.jsp, *.do, *.html ファイルへのアクセスのみに no-cache ヘッダを付加しますが、V8.x ではこのアプリケーション全体に対して no-cahce ヘッダを付加します。

【web.xmlの記述例(抜粋)】

<security-constraint>
   <display-name>Server Configuration Security Constraint</display-name>
      <web-resource-collection>
         <web-resource-name>Protected Area</web-resource-name>
          <!-- Define the context-relative URL(s) to be protected -->
          <url-pattern>*.jsp</url-pattern>
          <url-pattern>*.do</url-pattern>
          <url-pattern>*.html</url-pattern>
      </web-resource-collection>
      <auth-constraint>
        <!-- Anyone with one of the listed roles may access this area -->
          <role-name>stRole</role-name>
      </auth-constraint>
  </security-constraint>

  <!-- Login configuration uses form-based authentication -->
  <login-config>
      <auth-method>FORM</auth-method>
        <realm-name>file</realm-name>
                    
        <form-login-config>
            <form-login-page>/login.jsp</form-login-page>
             <form-error-page>/error.jsp</form-error-page>
        </form-login-config>
    </login-config>

    <!-- Security roles referenced by this web application -->
    <security-role>
        <description>
             The role that is required to log in to the Administration Application
        </description>
       <role-name>
stRole</role-name>
    </security-role>

V8.x でも V7.x 以前の WebOTX と同様にセキュリティの範囲内のみに no-cache を付加したい場合、 nec-web.xml に下記例を参考に checkURLPatternAfterMatching=false の設定を追加してください。

<?xml version="1.0" encoding="UTF-8"?>
<nec-web-app>
  <context-root>context_name</context-root>
 <property name="checkURLPatternAfterMatching" value="false"/>
</nec-web-app>

この設定により、[ 注意制限事項 > 3. Webコンテナ > 3.1. 注意事項 ]にある [ IEからSSL通信を行う場合、XMLドキュメントの取得に失敗する場合があることについて ]の現象を回避することができることがあります。

2.3.7. セキュリティポリシーの設定

Tomcatは、オプションなしで起動すると、Javaセキュリティ・マネージャを使用しない定義で動作します。セキュリティ・マネージャを使用しない場合、実行時にアクセス制御を行わないため、高速に処理できます。その反面、社会インフラでの利用に求められるサーバ・セキュリティが全く働かない問題があります。

WebOTXでは、デフォルトでセキュリティ・マネージャが動作します。これにより、Webアプリケーションが不用意に資源 (OS上のファイルや他システムへの接続など) にアクセスすることを制限することができます。ただし、意図した資源へのアクセスを許可する場合には、Javaセキュリティポリシーに追加設定する必要があります。

ここでは、Webアプリケーションが必要とする資源へのアクセスを許可させる方法について説明します。

2.3.7.1. セキュリティポリシーの設定方法

Webアプリケーションが、任意のディレクトリ/ファイルにアクセスする場合の設定を例に説明します。

  1. ドメインを停止します。

  2. Webアプリケーションが、「/Temp」ディレクトリとその配下のファイルの読み込みを行う場合、次のファイルに定義を追加します。

    【${INSTANCE_ROOT }/config/server.policy】

    ・・・
    // Basic set of required permissions granted to all remaining code
    grant {
    
    permission java.io.FilePermission "${/}Temp", "read";
    permission java.io.FilePermission "${/}Temp${/}-", "read";
    ・・・
    }
    ・・・
    

    上記では、「/Temp」ディレクトリへのreadの許可と、「/Temp」ディレクトリ配下のファイルのreadの許可を追加しています。

  3. 設定後に、ドメインを起動することで反映されます。

JDKのアクセス権とポリシーの構文については以下のサイトを参照してください。(J2SE 1.5の説明)

http://java.sun.com/j2se/1.5.0/docs/guide/security/permissions.html

http://java.sun.com/j2se/1.5.0/docs/guide/security/PolicyFiles.html

2.3.7.2. セキュリティ例外の調査方法

事前にアクセスするディレクトリ/ファイルなどが分かっている場合には、動作させる前にserver.policyに定義を追加できます。  しかし、どのようなアクセスがあるか分からない場合には、Webアプリケーションを動作させてみて、セキュリティ例外メッセージから追跡します。

例えば、許可されない資源へのアクセスがあると、${INSTANCE_ROOT}/logs/server.logログファイルに次のような例外メッセージが記録されます。

access denied (java.io.FilePermission /Temp read)

この場合には、先に説明した「/Temp」ディレクトリへのreadを許可するポリシーの追加が必要になります。 さらに、次のようにJava VMのオプションを追加することによって、詳細な情報を確認することができます。 以下はdomain1ドメインにセキュリティ違反の詳細を確認するJava VMオプションを追加するコマンド例です。

otxadmin> create-jvm-options --user admin --password adminadmin --port 6212 --host localhost -Djava.security.debug=access\\:failure:

※ 実際には1行で実行してください。

設定後、ドメインを再起動してください。詳細な情報がlogs/server.logに出力されますので、「denied」と記録されているものを確認し、セキュリティポリシーの追加を行ってください。

2.3.7.3. セキュリティポリシー設定の移行

Tomcatでのセキュリティポリシーの設定はconf/catalina.policyで行います。 WebOTXでのセキュリティポリシーの設定は${INSTANCE_ROOT }/config/server.policyで行います。 現行のシステムでセキュリティポリシーを設定している場合は、この設定内容を移行します。

【conf/catalina.policy抜粋 (Tomcatの例)】

grant { 
    permission java.util.PropertyPermission "java.home", "read";
   :省略
};

【${INSTANCE_ROOT }/config/server.policy抜粋 (WebOTXの例)】

grant principal javax.management.remote.JMXPrincipal "admin" {
    :省略
    permission java.io.FilePermission "${java.home}${/}..${/}bin${/}-", "read,execute";
    :省略
};

2.3.8. Tomcatの差異による対応

Tomcatの各バージョンの差異により、WebOTXへの移行の際に対応が必要となる場合があります。

ここでは、各バージョンの差異とその対応方法について説明します。

また、WebOTX V6、V7のベースとなっているTomcatのバージョンは5.0、V8ではTomcat 6.0がベースとなっています。よって、V7以前からV8へ移行する際にもこれらの設定が必要になります。

2.3.8.1. Tomcat 5.0と Tomcat 5.5の差異

server.web-container.property.forwardRequestURLの値が変更されている

Tomcat 5.0以前からWebOTX V8へ移行する際にこの対応が必要になる場合があります。

Tomcat 5.0とTomcat 5.5の差異として、この値のデフォルト値が “original” → “forward” に変更されています。
WebOTX V7 → V8の変更はTomcat 5.0 → 5.5の変更に合わせているため、対応が必要な場合は設定を行ってください。
設定方法の詳細は 2.5.1. Tomcat設定項目との対応 をご覧ください。

2.3.8.2. Tomcat 5.5と Tomcat 6.0の差異

InvokerServletが機能しない

Tomcat 5.5以前からWebOTX V8に移行する際にこの対応が必要になる場合があります。

これはTomcat 5.5で機能していたInvokerServletの機能が、セキュリティ上の観点からTomcat 6.0ではデフォルトで動作しないようになっているためです。Tomcat6.0をベースにしているWebOTX V8ではこの問題が発生します。 この機能を使用する場合は下記の設定が必要になります。

【設定手順】

1) Webアプリケーションのweb.xmlのInvokeServletが定義されている事を確認します。

<servlet>
 <servlet-name>invoker</servlet-name>
 <servlet-class>org.apache.catalina.servlets.InvokerServlet</servlet-class>
 <init-param>
  <param-name>debug</param-name>
  <param-value>0</param-value>
 </init-param>
 <load-on-startup>2</load-on-startup>
</servlet>

…

<servlet-mapping>
 <servlet-name>invoker</servlet-name>
 <url-pattern>/servlet/*</url-pattern>
</servlet-mapping>

2) 次にweb.xmlにload-on-startupの指定があるかどうかを確認します。load-on-startupの有無によって次の2つの方法で設定を追加します。

3) ドメインを再起動します。

[ 2.6. Q&A > 2.6.1. Webアプリケーションの実行エラーに関するQ&A ]の Q8 も参考にしてください。


JSPの実行時に例外が発生する場合がある

WebOTX V8より該当クラスのパッケージ名が変更されているため、JSPの実行時に例外が発生し、HTTPステータスコード500エラーが返却される場合があります。

org.apache.jasper.tagplugins.jstl.If

org.apache.jasper.tagplugins.jstl.core.If
その他の変更/削除されたパッケージ(クラス)は以下になります。

[変更]
org/apache/commons/beanutils/ -> com/nec/webotx/org/apache/commons/beanutils/
org/apache/commons/collections/ -> com/nec/webotx/org/apache/commons/collections/
org/apache/commons/digester/ -> com/nec/webotx/org/apache/commons/digester/
org/apache/commons/el/ -> org/apache/taglibs/standard/lang/jstl/
org/apache/commons/el/parser/ -> org/apache/el/parser/
org/apache/commons/launcher/ -> com/nec/webotx/org/apache/commons/launcher/
org/apache/commons/logging/ -> com/nec/webotx/org/apache/commons/logging/
org/apache/commons/modeler/ -> com/nec/webotx/org/apache/commons/modeler/
org/apache/jasper/tagplugins/jstl/ -> org/apache/jasper/tagplugins/jstl/core/
org/apache/log4j/ -> com/nec/webotx/org/apache/log4j/

org/apache/jasper/util/FastDateFormat.class -> org/apache/catalina/util/FastDateFormat.class
org/apache/jasper/util/Queue.class -> org/apache/tomcat/util/collections/Queue.class
org/apache/jasper/util/SimplePool.class -> org/apache/tomcat/util/collections/SimplePool.class
org/apache/jasper/util/SystemLogHandler.class -> org/apache/tomcat/util/log/SystemLogHandler.class

[削除]
org/apache/commons/codec/
org/apache/commons/discovery/
org/apache/jasper/xmlparser/XercesEncodingDetector.class
org/apache/regexp/RETestCase.class
org/apache/taglibs/standard/tag/common/xml/JSTLPrefixResolver.class
org/apache/taglibs/standard/tag/common/xml/JSTLXPathAPI.class

2.3.9. その他のAPサーバからの移行

ここでは、その他のAPサーバからWebOTX V8へ移行する際に必要となる対応について説明します。

2.3.9.1. その他のAPサーバ独自のAPIについて

その他のAPサーバ独自のAPIを使用している場合、WebOTXで動作させると問題が発生します。
(例えば、JRunが独自に提供するAPIは、パッケージ名に「jrun」というキーワードが入っています。)
アプリケーションが利用するライブラリのパッケージ名にその他のAPサーバ独自のキーワードがあるかどうか、 JSPやServletなどでその他のAPサーバ独自のAPIを使用していないかを確認してください。

2.3.9.2. WEB-INFに配置したファイルを読む方法

JRunでは、WEB-INFに配置したファイルは配置しただけで読み込めますが、その他のAPサーバでは読み込めません。 読み込めるようにするためには、クラスパスの設定などの対処が必要になります。

2.3.9.3. リクエストの読み込みとレスポンスの書き込みについて

Servlet仕様に記載されている通り、WebOTXを含む一般のAPサーバには、次の制限があります。

この制限を回避するには、Webアプリケーションの改造が必要になります。

2.3.9.4. 仮想ドキュメントルートの設定

WebLogicの仮想ディレクトリ(※)をWebOTXで実現するには、 nec-web.xmlでalternatedocroot_<N>プロパティ の設定を行う必要があります。

※ Webアプリケーションのデフォルトドキュメントルート以外のドキュメントルートを指定する機能

2.4. 運用管理方法

Tomcatでの運用管理では、WebブラウザからAdministration ToolやManagerアプリケーションを利用し、設定の変更はserver.xmlを直接編集するのが一般的です。

WebOTXでは、JMX(Java Management Extensions)による運用管理機能を提供しています。これにより、Tomcatのserver.xmlに相当する設定項目をコマンドやGUIにより容易に運用管理できるようになっています。運用管理において、TomcatとWebOTXは次の違いがあります。

表2.4-1
項目 Tomcat WebOTX 本書での説明
Webサーバとの連携 設定ファイルを直接編集 環境設定ツールを提供
WebOTX Webサーバ利用時は自動的に連携設定
2.4.1.
配備方法 Managerアプリケーションを使うか、webappsディレクトリへWARファイルをコピー 運用管理コマンド、運用管理コンソールを提供し、autodeployディレクトリへのファイルコピーでの配備にも対応 2.4.4.
複数Webコンテナの構成 Tomcatを複数インストール 複数のドメインを作成 -
運用管理コマンド なし 運用管理コマンドを提供 2.4.2.
運用管理コンソール Administration Tool、Managerアプリケーションを提供 運用管理コンソールを提供 2.4.3.

2.4.1. Webサーバとの連携

WebOTXでは、各Webサーバとの連携に必要なプラグイン(mod_jk)と、連携のための設定作業を支援する環境設定ツールも提供しています。

Webサーバとの連携を設定する場合には、環境設定ツールを利用して行います。複数のドメインが存在する場合、この設定はドメイン毎に行います。

【環境設定ツール】 Windows版

  「スタート」-「プログラム」-「WebOTX」の「環境設定ツール」を起動します。

【環境設定ツール】(シェル) UNIX版 

  ログイン名 root でログインします。

login: root

WebOTXのインストールディレクトリ/binディレクトリへ移動します。

root> cd /opt/WebOTX/bin

./setconf.sh と入力し環境設定ツールを起動します。

root> ./setconf.sh

上記の環境設定を行った後に、次のように運用管理コマンド(otxadmin)で設定します。

otxadmin> set --user admin --password adminadmin --port 6212 --host localhost server.server.http-listeners=”ajp-listener-1”

環境設定ツール、運用管理コマンドでの設定手順の詳細については、 WebOTXマニュアル [ セットアップガイド ] をご覧ください。

2.4.2. 運用管理コマンド

WebOTXでは、運用のための様々なコマンドを用意しています。

domainの起動/停止、構成情報の参照や変更、アプリケーションの配備/配備解除などが運用管理コマンドで可能です。 詳細は [ リファレンス集 運用管理・設定編 > 4. 運用管理コマンドリファレンス > 4.2. 運用管理コマンド(otxadmin) ] をご覧ください。

2.4.3. 運用管理コンソール

Webブラウザから利用できるWeb版統合運用管理コンソールを用意しています。 詳細は WebOTXマニュアル [ 運用ツールガイド > 1. Web版統合運用管理コンソール ] 、もしくはWeb版統合運用管理コンソールのヘルプをご覧ください。

Web版統合運用管理コンソールを利用するには、クライアントにWebブラウザとして Internet Explorer 6/7/8/9/10(*1), FireFox 3.0-3.6 のいずれかが必要です。

*1 Internet Explorer 10はWindows 64ビット版かつWebOTX Media (x64) V8.5のCD/DVD-ROM媒体のRevision 8.52からインストールした場合のみサポート

【Web版統合運用管理コンソール】

図2.4.3-1

2.4.4. 配備方法

WARファイルを配備するには、運用管理コマンドを利用する方法と運用管理コンソールを利用する方法、autodeployディレクトリにコピーする方法があります。

本節では、運用管理コマンドで配備する方法について、説明します。

WebOTXにWebアプリケーションを配備するには、WARファイルで配備する方法と、WebOTXが動作するサーバ上のWebアプリケーションのディレクトリを指定して配備する方法があります

2.4.4.1. WARファイルでの配備

WebOTXにWebアプリケーションを配備するには、WARファイルで配備する方法と、WebOTXが動作するサーバ上のWebアプリケーションのディレクトリを指定して配備する方法があります。ここでは、WARファイルで配備する場合について説明します。

WARファイルの作成

Webアプリケーションのディレクトリを”D:/temp/sampleAP”とします。JDKのインストールディレクトリは” C:/j2sdk1.5.0”とします。 Windowsでは、次のようにコマンドを実行してsampleAP.warファイルを作成します。

cd D:/temp/sampleAP
C:/jdk1.5.0_16/bin/jar -cfv sampleAP.war *

※WARファイルの構成については以下のマニュアルを参照ください。
[ アプリケーション開発ガイド(Java EE) > 2. Webアプリケーションの開発 ]

運用管理コマンドでの配備

運用管理コマンドでWARファイルを配備するには次のようにコマンドを実行します。 自ホストでデフォルト作成したdomain1にsampleAP.warを配備する場合の例です。

otxadmin> deploy --user admin --password adminadmin --host localhost --port 6212  sampleAP.war

※ 実際には1行で実行してください。

※ 各引数の詳細は、WebOTXマニュアル [ リファレンス集 運用管理・設定編 > 4. 運用管理コマンドリファレンス > 4.2. 運用管理コマンド(otxadmin) ] をご覧ください。

2.4.4.2. ディレクトリ指定での配備

運用管理コマンドでディレクトリ指定によってWebアプリケーションを配備するには次のようにコマンドを実行します。 自ホストでデフォルト作成したdomain1に/home/temp/sampleAPディレクトリ配下に作成したアプリケーションを配備する場合の例です。

otxadmin> deploydir     --user admin --password adminadmin --host localhost --port 6212 /home/temp/sampleAP

※ 実際には1行で実行してください。

※ 各引数の詳細は、WebOTXマニュアル [ リファレンス集 運用管理・設定編 > 4. 運用管理コマンドリファレンス > 4.2. 運用管理コマンド(otxadmin) ] をご覧ください。

2.5. Tomcat設定項目

本章では、WebOTXに設定することのできる項目について説明しています。

2.5.1. Tomcat設定項目との対応

Tomcat 6.xの設定項目をWebOTX V8に設定する方法をまとめました。設定を反映させる方法は以下のようになります。

・ domain.xmlへの設定を運用管理コンソールにより設定する場合(推奨)
運用管理コンソールにて設定を行った後、ドメインを再起動してください。

・ domain.xmlへの設定をコマンドにより設定する場合
ドメインを起動した状態で、運用管理コマンドにて設定コマンドを入力した後、ドメインを再起動してください。

・ domain.xmlを直接編集する場合
ドメイン停止後、記述箇所に設定内容を記述し、ドメインを起動してください。

・ nec-web.xmlを編集する場合
Webアプリケーションを更新して、更新したアプリケーションを配備し直してください。

また、domain.xmlとnec-web.xmlの両方に設定箇所がある項目については、同時に設定した場合nec-web.xmlへの設定が優先されます。

コネクタ(HTTP、AJP共通)

表2.5.1-1
項目 説明 設定箇所 設定方法
allowTrace TRACE HTTPメソッドを有効にする設定です。
デフォルト値はfalseです。
domain.xml ■運用管理コンソールへの設定例
<ドメイン名>
 -「アプリケーションサーバ」
  -「HTTPサービス」
の順にクリックしていき、「操作」タブの「プロパティの設定」に記述を行います。
「traceEnabled=true」

■運用管理コマンドでの設定例
  otxadmin> set server.http-service.property.traceEnabled=true

■domain.xmlへの設定例
http-servicer要素にpropertyを設定します。
<http-service>
 <property name="traceEnabled" value="true" />
</http-service>
emptySessionPath セッション、クッキーのパスについての設定を指定します。WebOTXでは、Webアプリケーションごとにパスに設定する値を指定します。 cookiePathに"/"を指定することで、emptySessionPath=trueと同等の動作をします。 ポートレットなど特殊な実装の場合に利用します。特にWebアプリケーションで必要がなければ設定不要です。
デフォルト値はコンテキストパスです。
nec-web.xml
または
domain.xml
■運用管理コンソールへの設定例
<ドメイン名>
 -「アプリケーションサーバ」
  -「HTTPサービス」
   -「HTTPリスナ」
    -<リスナ名>
の順にクリックしていき、「操作」タブの「プロパティの設定」に記述を行います。
「emptySessionPath=true」

■運用管理コマンドでの設定例
  otxadmin> set server.http-service.http-listener.http-listener-1.property.emptySessionPath=true

■nec-web.xmlへの設定例
cookie-properties要素にpropertyを設定します。
<nec-web-app>
 <session-config>
  <cookie-properties>
   <property name="cookiePath" value="/" />

■domain.xmlへの設定例
http-listener要素にpropertyを設定します。
<http-listener>
 <property name="emptySessionPath" value="true" />
</http-listener>
enableLookups trueを指定すると、リモートクライアントのホスト名をIPアドレスから逆引きして、request.getRemoteHost()に返却します。falseの場合はDNSの逆引きをスキップしてIPアドレスを返却します。
デフォルト値はfalseです。
domain.xml ■運用管理コンソールへの設定例
<ドメイン名>
 -「アプリケーションサーバ」
  -「HTTPサービス」
   -「HTTPリスナ」
    -<リスナ名>
の順にクリックしていき、「属性」タブの「一般」の「DNSルックアップの有無」にチェックを行います。

■運用管理コマンドでの設定例
  otxadmin> set server.http-service.http-listener.http-listener-1.enable-lookups=false

■domain.xmlへの設定例
http-listener要素に設定します。
<http-service>
 <http-listener enable-lookups="false" />
</http-service>
maxPostSize コンテナの FORM URL パラメタ構文解析で扱う POST の最大バイト数を指定します。 この属性を 0 以下の値にセットすると無制限になります。
デフォルト値は2097152 (2MByte)です。
domain.xml ■運用管理コンソールへの設定例
<ドメイン名>
 -「アプリケーションサーバ」
  -「HTTPサービス」
   -「HTTPリスナ」
    -<リスナ名>
の順にクリックしていき、「操作」タブの「プロパティの設定」に記述を行います。
「maxPostSize=2097152」

■運用管理コマンドでの設定例
  otxadmin> set server.http-service.http-listener.http-listener-1.property.maxPostSize=2097152

■domain.xmlへの設定例
http-listener要素にpropertyを設定します。
<http-listener>
 <property name="maxPostSize" value="2097152" />
</http-listener>
maxSavePostSize FORMまたはCLIENT-CERT認証の間、コンテナが保存、バッファリングするPOST の最大バイト数を指定します。 どちらのタイプの認証に対しても,ユーザが認証される前にPOSTが保存、バッファリングされます。 CLIENT-CERT認証に対しては、POSTは SSLハンドシェークの間バッファリングされ、リクエストが処理されるとバッファが空にされます。FORM認証に対しては、POSTはユーザが loginフォームにリダイレクトされる間保存され、ユーザが認証に成功するか、認証リクエストに関するセッションが期限切れになるまで維持されます。この属性を -1にすると無制限になります。属性を 0 にすると認証の間のPOST データの保存が禁止されます。
デフォルト値は4096 (4KByte)です。
domain.xml ■運用管理コンソールへの設定例
<ドメイン名>
 -「アプリケーションサーバ」
  -「HTTPサービス」
   -「HTTPリスナ」
    -<リスナ名>
の順にクリックしていき、「操作」タブの「プロパティの設定」に記述を行います。
「maxSavePostSize=4096」

■運用管理コマンドでの設定例
  otxadmin> set server.http-service.http-listener.http-listener-1.property.maxSavePostSize=4096

■domain.xmlへの設定例
web-container要素またはhttp-listener要素にpropertyを設定します。
<web-container>
 <property name="maxSavePostSize" value="4096" />
</http-listener>
または
<http-listener>
 <property name="maxSavePostSize" value="4096" />
</http-listener>
protocol 通信プロトコルを指定します。HTTP/1.0、HTTP/1.1またはAJP/1.3を指定します。
デフォルト値はHTTP/1.1です。
domain.xml ■運用管理コンソールへの設定例
<ドメイン名>
 -「アプリケーションサーバ」
  -「HTTPサービス」
   -「HTTPリスナ」
    -<リスナ名>
の順にクリックしていき、「属性」タブの「一般」の「扱うプロトコル」に記述を行います。
※この項目は設定変更できません。

■運用管理コマンドでの設定例
  otxadmin> set server.http-service.http-listener.http-listener-1.protocol=HTTP/1.1

■domain.xmlへの設定例
http-listener要素に設定します。
<http-service>
 <http-listener protocol="HTTP/1.1" />
</http-service>
proxyName このコネクタがプロキシを利用する場合、そのプロキシのサーバ名を指定します。
デフォルト値はありません。
domain.xml ■運用管理コンソールへの設定例
<ドメイン名>
 -「アプリケーションサーバ」
  -「HTTPサービス」
   -「HTTPリスナ」
    -<リスナ名>
の順にクリックしていき、「操作」タブの「プロパティの設定」に記述を行います。
「proxyName=www.mycompany.com」

■運用管理コマンドでの設定例
  otxadmin> set server.http-service.http-listener.http-listener-1.property.proxyName=www.mycompany.com

■domain.xmlへの設定例
http-listener要素にpropertyを設定します。
<http-listener>
 <property name="proxyName" value="www.mycompany.com" />
</http-listener>
proxyPort このコネクタがプロキシを利用する場合、そのプロキシのポート番号を指定します。
デフォルト値はありません。
domain.xml ■運用管理コンソールへの設定例
<ドメイン名>
 -「アプリケーションサーバ」
  -「HTTPサービス」
   -「HTTPリスナ」
    -<リスナ名>
の順にクリックしていき、「操作」タブの「プロパティの設定」に記述を行います。
「proxyPort=80」

■運用管理コマンドでの設定例
  otxadmin> set server.http-service.http-listener.http-listener-1.property.proxyPort=80

■domain.xmlへの設定例
http-listener要素にpropertyを設定します。
<http-listener>
 <property name="proxyPort" value="80" />
</http-listener>
redirectPort リダイレクトに使用するポート番号を指定します。SSLをサポートしていない場合、かつ受け取ったリクエストの宛先に該当する <security-constraint> が SSL トランスポートを要求している場合は、Catalina は自動的にそのリクエストをここで指定されたポート番号へリダイレクトします。
デフォルト値はありません。
domain.xml ■運用管理コンソールへの設定例
<ドメイン名>
 -「アプリケーションサーバ」
  -「HTTPサービス」
   -「HTTPリスナ」
    -<リスナ名>
の順にクリックしていき、「操作」タブの「プロパティの設定」に記述を行います。
「redirectPort=443」

■運用管理コマンドでの設定例
  otxadmin> set server.http-service.http-listener.http-listener-1.property.redirectPort=443

■domain.xmlへの設定例
http-listener要素にpropertyを設定します。
<http-listener>
 <property name="redirectPort" value="443" />
</http-listener>
scheme request.isSecure() 呼び出しで返されるセキュア情報を指定します。SSLを使用する場合はtrueを指定して下さい。
デフォルト値はfalseです。
domain.xml ■運用管理コンソールへの設定例
<ドメイン名>
 -「アプリケーションサーバ」
  -「HTTPサービス」
   -「HTTPリスナ」
    -<リスナ名>
の順にクリックしていき、「操作」タブの「プロパティの設定」に記述を行います。
「scheme=https」

■運用管理コマンドでの設定例
  otxadmin> set server.http-service.http-listener.http-listener-1.property.sheme=https

■domain.xmlへの設定例
http-listener要素にpropertyを設定します。
<http-listener>
 <property name="sheme" value="https" />
</http-listener>
secure request.getScheme() 呼び出しで返されるスキーマ文字列を定義します。この値がtrueならば https 通信が可能となります。
デフォルト値はfalseです。
domain.xml ■運用管理コンソールへの設定例
<ドメイン名>
 -「アプリケーションサーバ」
  -「HTTPサービス」
   -「HTTPリスナ」
    -<リスナ名>
の順にクリックしていき、「属性」タブの「一般」の「SSLの使用の有無」にチェックを行います。

■運用管理コマンドでの設定例
  otxadmin> set server.http-service.http-listener.http-listener-1.security-enabled=true

■domain.xmlへの設定例
http-listener要素に設定します。
<http-service>
 <http-listener security-enabled="true" />
</http-service>
URIEncoding 「http://contents?a=%12%34」形式で記述されたURLをデコードする際の文字エンコーディングを指定します。
デフォルト値は「ISO-8859-1」です。
domain.xml ■運用管理コンソールへの設定例
<ドメイン名>
 -「アプリケーションサーバ」
  -「HTTPサービス」
   -「HTTPリスナ」
    -<リスナ名>
の順にクリックしていき、「操作」タブの「プロパティの設定」に記述を行います。
「uriEncoding=Shift_JIS」

■運用管理コマンドでの設定例
  otxadmin> set server.http-service.http-listener.http-listener-1.property.uriEncoding=Shift_JIS

■domain.xmlへの設定例
http-listener要素にpropertyを設定します。
<http-listener>
 <property name="uriEncoding" value="Shift_JIS" />
</http-listener>
useBodyEncodingForURI Tomcat4.1.x系との互換性の為に使用されます。デフォルト値は false ですが、互換を保つには true を指定して下さい。true にすると、ContentType又はRequest.setCharacterEncodingメソッドで指定されたエンコーディングをデコードに使用します。URIEncodingは使用されません。
デフォルト値はfalseです。
domain.xml ■運用管理コンソールへの設定例
<ドメイン名>
 -「アプリケーションサーバ」
  -「HTTPサービス」
   -「HTTPリスナ」
    -<リスナ名>
の順にクリックしていき、「操作」タブの「プロパティの設定」に記述を行います。
「useBodyEncodingForURI=true」

■運用管理コマンドでの設定例
  otxadmin> set server.http-service.http-listener.http-listener-1.property.useBodyEncodingForURI=true

■domain.xmlへの設定例
http-listener要素にpropertyを設定します。
<http-listener>
 <property name="useBodyEncodingForURI" value="true" />
</http-listener>
xpoweredBy Servlet 仕様で推奨されたヘッダを使って、その仕様をサポートしていることを広告します。
デフォルト値はfalseです。
domain.xml ■運用管理コンソールへの設定例
<ドメイン名>
 -「アプリケーションサーバ」
  -「HTTPサービス」
   -「HTTPリスナ」
    -<リスナ名>
の順にクリックしていき、「属性」タブの「一般」の「X-Powered-By ヘッダ付加の有無」にチェックを行います。

■運用管理コマンドでの設定例
  otxadmin> set server.http-service.http-listener.http-listener-1.xpowered-by=true

■domain.xmlへの設定例
http-listener要素に設定します。
<http-service>
 <http-listener xpowered-by="true" />
</http-service>
address このリクエストを受け付けるIPアドレスを指定します。
デフォルト値は"0.0.0.0"です。このサーバが持つすべてIPアドレスでリクエストを受け付けます。
domain.xml ■運用管理コンソールへの設定例
<ドメイン名>
 -「アプリケーションサーバ」
  -「HTTPサービス」
   -「HTTPリスナ」
    -<リスナ名>
の順にクリックしていき、「属性」タブの「一般」の「バインドするサーバのアドレス」に記述を行います。
「hostname」

■運用管理コマンドでの設定例
  otxadmin> set server.http-service.http-listener.http-listener-1.address=hostname

■domain.xmlへの設定例
http-listener要素に設定します。
<http-service>
 <http-listener address="hostname" />
</http-service>
bufferSize このコネクタが入力ストリームとして生成するバッファサイズをbyte単位で指定します。
デフォルト値は2048bytesです。
domain.xml ■運用管理コンソールへの設定例
<ドメイン名>
 -「アプリケーションサーバ」
  -「HTTPサービス」
   -「HTTPリスナ」
    -<リスナ名>
の順にクリックしていき、「属性」タブの「チューニング」の「リクエスト処理用入力ストリームのバッファサイズ」に記述を行います。
「4096」

■運用管理コマンドでの設定例
  otxadmin> set server.http-service.http-listener.http-listener-1.buffer-size=4096

■domain.xmlへの設定例
http-listener要素に設定します。
<http-service>
 <http-listener buffer-size="4096" />
</http-service>
connectionTimeout 接続を受け付けた後,リクエストの URI 行が現れるのを、このコネクタが待つミリ秒数を指定します。
デフォルト値は 60000(ミリ秒)です。
domain.xml ■運用管理コンソールへの設定例
<ドメイン名>
 -「アプリケーションサーバ」
  -「HTTPサービス」
   -「HTTPリスナ」
    -<リスナ名>
の順にクリックしていき、「属性」タブの「チューニング」の「リクエスト受け付け用ソケットの接続タイムアウト値」に記述を行います。
「60000」

■運用管理コマンドでの設定例
  otxadmin> set server.http-service.http-listener.http-listener-1.connection-timeout=60000

■domain.xmlへの設定例
http-listener要素に設定します。
<http-service>
 <http-listener connection-timeout="60000" />
</http-service>
executor Executor 要素の名前への参照を指定します。 もしもこの属性が有効であって、指名された executor が存在するならば、コネクタは他のすべてのスレッド属性を無視して、この executor を使用します。
デフォルト値はありません。
domain.xml ■運用管理コンソールへの設定例
<ドメイン名>
 -「アプリケーションサーバ」
  -「HTTPサービス」
   -「HTTPリスナ」
    -<リスナ名>
の順にクリックしていき、「操作」タブの「プロパティの設定」に記述を行います。
「executor=xxx」

■運用管理コマンドでの設定例
  otxadmin> set server.http-service.http-listener.http-listener-1.property.executor=xxx

■domain.xmlへの設定例
http-listener要素にpropertyを設定します。
<http-listener>
 <property name="executor" value="xxx" />
</http-listener>
keepAliveTimeout このコネクタが接続を閉じる前に別の HTTP リクエストを待つミリ秒数を指定します。
デフォルト値は connectionTimeout 属性にセットされた値が使われます。
domain.xml ■運用管理コンソールへの設定例
<ドメイン名>
 -「アプリケーションサーバ」
  -「HTTPサービス」
   -「HTTPリスナ」
    -<リスナ名>
の順にクリックしていき、「操作」タブの「プロパティの設定」に記述を行います。
「keepalive-timeout=30」

■運用管理コマンドでの設定例
  otxadmin> set server.http-service.http-listener.http-listener-1.property.keepalive-timeout=30

■domain.xmlへの設定例
http-listener要素にpropertyを設定します。
<http-listener>
 <property name="keepalive-timeout" value="30" />
</http-listener>
maxThreads リクエスト処理スレッドの最大数を指定します。
デフォルト値は20です。
domain.xml ■運用管理コンソールへの設定例
<ドメイン名>
 -「アプリケーションサーバ」
  -「HTTPサービス」
   -「HTTPリスナ」
    -<リスナ名>
の順にクリックしていき、「属性」タブの「チューニング」の「最大プロセッサ数」に記述を行います。
「20」

■運用管理コマンドでの設定例
  otxadmin> set server.http-service.http-listener.http-listener-1.max-processors=20

■domain.xmlへの設定例
http-listener要素に設定します。
<http-service>
 <http-listener max-processors="20" />
</http-service>
port このコネクタがサーバ・ソケットを作成して接続を受け付けるTCP ポート番号を指定します。 domain.xml ■運用管理コンソールへの設定例
<ドメイン名>
 -「アプリケーションサーバ」
  -「HTTPサービス」
   -「HTTPリスナ」
    -<リスナ名>
の順にクリックしていき、「属性」タブの「一般」の「ポート番号」に記述を行います。
「8080」

■運用管理コマンドでの設定例
  otxadmin> set server.http-service.http-listener.http-listener-1.port=8080

■domain.xmlへの設定例
http-listener要素に設定します。
<http-service>
 <http-listener port="8080" />
</http-service>
tcpNoDelay trueにセットすると, TCP_NO_DELAY オプションがサーバ・ソケットにセットされます。
デフォルト値はtrueです。
domain.xml ■運用管理コンソールへの設定例
<ドメイン名>
 -「アプリケーションサーバ」
  -「HTTPサービス」
   -「HTTPリスナ」
    -<リスナ名>
の順にクリックしていき、「操作」タブの「プロパティの設定」に記述を行います。
「tcp-no-delay=false」

■運用管理コマンドでの設定例
  otxadmin> set server.http-service.http-listener.http-listener-1.property.tcp-no-delay=false

■domain.xmlへの設定例
http-listener要素にpropertyを設定します。
<http-listener>
 <property name="tcp-no-delay" value="false" />
</http-listener>
accesslog-pattern-web アクセスログの出力形式をカスタマイズすることができます。
デフォルト値は"%h %l %u %t "%r" %s %b"です。

フォーマットは以下になります。
%a - 接続元IPアドレス
%A - 自ホストのIPアドレス
%b - 送信バイト数 なしの場合は”-“
%B - 送信バイト数
%h - 接続元ホスト名
%H - リクエストプロトコル名
%l - 接続元論理ユーザ名
%m - リクエストメソッド
%p - 接続ポート番号
%q - クエリ文字列
%r - リクエストの最初の一行
%s - HTTPレスポンスステータスコード
%S - セッションID
%t - 日付と時間
%u - 認証済みのユーザ名
%U - リクエストされたURL
%v - ローカルホスト名
%D - リクエスト処理時間(ミリ秒)
%T リクエスト処理時間(秒)
domain.xml ■運用管理コンソールへの設定例
<ドメイン名>
 -「アプリケーションサーバ」
  -「HTTPサービス」
   -「HTTPリスナ」
    -<リスナ名>
の順にクリックしていき、「属性」タブの「プロパティの設定」に記述を行います。
「accesslog-pattern-web="%h %l %S %u %t \"%r\" %s %b %D"」

■運用管理コマンドでの設定例
  otxadmin> set server.http-service.http-listener.http-listener-1.property.accesslog-pattern-web="%h %l %S %u %t \"%r\" %s %b %D"

■domain.xmlへの設定例
http-service要素のvirtual-server要素のpropertyに設定します。
<http-service>
 <virtual-server>
  <property name="accesslog-pattern-web" value="%h %l %S %u %t "%r" %s %b %D" />
 </virtual-server>
</http-service>
timeoutSeconds アクセスのない状態のセッションのタイムアウト時間を秒単位で指定します。0 以下を指定するとこのWeb アプリケーションのセッションは期限切れになりません。
デフォルト値は1800(秒)です。

※web.xmlとnec-web.xmlへの設定を同時に行った場合、web.xmlの設定が優先されます。
web.xml
または
nec-web.xml
■web.xmlへの設定例
session-config要素のsession-timeout要素に設定します。
※単位は分です。
<session-config>
 <session-timeout>60</session-timeout>
</session-config>

■nec-web.xmlへの設定例
session-properties要素にpropertyを設定します。
※単位は秒です。
<session-properties>
 <property name="timeoutSeconds" value="1800" />
</session-properties>


コネクタ(HTTP)

表2.5.1-2
項目 説明 設定箇所 設定方法
SSLEnabled コネクタ上で SSL トラフィックを有効にする場合はこの属性を使用します。コネクタ上で SSLハンドシェーク/暗号化/復号をオンにするには、この値をtrueに指定してください。この値をtrueにする時は、同時に正しい request.getScheme()値と request.isSecure() 値をサーブレットに渡すため、scheme属性とsecure属性をtrueに設定してください。
デフォルト値はfalseです。
domain.xml ■運用管理コンソールへの設定例
<ドメイン名>
 -「アプリケーションサーバ」
  -「HTTPサービス」
   -「HTTPリスナ」
    -<リスナ名>
の順にクリックしていき、「操作」タブの「プロパティの設定」に記述を行います。
「SSLEnabled=true」

■運用管理コマンドでの設定例
  otxadmin> set server.http-service.http-listener.http-listener-1.property.SSLEnabled=true

■domain.xmlへの設定例
http-listener要素にpropertyを設定します。
<http-listener>
 <property name="SSLEnabled" value="true" />
</http-listener>
acceptCount このサーバへの接続要求バックログ数(接続要求キューのサイズ)を指定します。この値を超えて要求された全てのリクエストは拒否されます。
デフォルト値は 10 です。
domain.xml ■運用管理コンソールへの設定例
<ドメイン名>
 -「アプリケーションサーバ」
  -「HTTPサービス」
   -「HTTPリスナ」
    -<リスナ名>
の順にクリックしていき、「属性」タブの「チューニング」の「リクエスト受け付け用ソケットのバックログ」に記述を行います。
「10」

■運用管理コマンドでの設定例
  otxadmin> set server.http-service.http-listener.http-listener-1.accept-count=10

■domain.xmlへの設定例
http-listener要素に設定します。
<http-service>
 <http-listener accept-count="10" />
</http-service>
compressableMimeType 後述の compression で圧縮するMIMEタイプをカンマ区切りで指定します。
デフォルト値はtext/html,text/xml,text/plain です。
domain.xml ■運用管理コンソールへの設定例
<ドメイン名>
 -「アプリケーションサーバ」
  -「HTTPサービス」
   -「HTTPリスナ」
    -<リスナ名>
の順にクリックしていき、「操作」タブの「プロパティの設定」に記述を行います。
「compressable-mime-type=text/html」

■運用管理コマンドでの設定例
  otxadmin> set server.http-service.http-listener.http-listener-1.property.compressable-mime-type=text/html

■domain.xmlへの設定例
http-listener要素にpropertyを設定します。
<http-listener>
 <property name="compressable-mime-type" value="text/html" />
</http-listener>
compression GZIP compression を使ったデータ圧縮の可否を指定します。これはサーバ帯域の節約を目的とします。パラメタとして受理可能な値は "off" (圧縮禁止),"on" (圧縮許可、テキスト・データを圧縮)、 "force" (すべての場合で圧縮を強制)、または整数値 ("on" と等価ですが、出力が圧縮される前の最小のデータ量を指定します) です。 content-length が未知で compression が "on" 以上だった場合も,出力は圧縮されます。
デフォルト値は "off" です。
domain.xml ■運用管理コンソールへの設定例
<ドメイン名>
 -「アプリケーションサーバ」
  -「HTTPサービス」
   -「HTTPリスナ」
    -<リスナ名>
の順にクリックしていき、「操作」タブの「プロパティの設定」に記述を行います。
「compression=on」

■運用管理コマンドでの設定例
  otxadmin> set server.http-service.http-listener.http-listener-1.property.compression=on

■domain.xmlへの設定例
http-listener要素にpropertyを設定します。
<http-listener>
 <property name="compression" value="on" />
</http-listener>
connectionLinger このコネクタが使うソケットを閉じるとき、ソケットが滞留するミリ秒数を指定します。
デフォルト値は -1 (ソケット滞留は禁止)です。
domain.xml ■運用管理コンソールへの設定例
<ドメイン名>
 -「アプリケーションサーバ」
  -「HTTPサービス」
   -「HTTPリスナ」
    -<リスナ名>
の順にクリックしていき、「操作」タブの「プロパティの設定」に記述を行います。
「connectionLinger=15」

■運用管理コマンドでの設定例
  otxadmin> set server.http-service.http-listener.http-listener-1.property.connection-linger=15

■domain.xmlへの設定例
http-listener要素にpropertyを設定します。
<http-listener>
 <property name="connection-linge" value="15" />
</http-listener>
disableUploadTimeout サーブレットが実行されている間、設定されているものより長い接続タイムアウトをサーブレット・コンテナに許すかどうかを指定します。
デフォルト値は true です。
domain.xml ■運用管理コンソールへの設定例
<ドメイン名>
 -「アプリケーションサーバ」
  -「HTTPサービス」
   -「HTTPリスナ」
    -<リスナ名>
の順にクリックしていき、「操作」タブの「プロパティの設定」に記述を行います。
「disableUploadTimeout=true」

■運用管理コマンドでの設定例
  otxadmin> set server.http-service.http-listener.http-listener-1.property.disableUploadTimeout=true

■domain.xmlへの設定例
http-listener要素にpropertyを設定します。
<http-listener>
 <property name="disableUploadTimeout" value="true" />
</http-listener>
maxHttpHeaderSize リクエストとレスポンスの HTTP ヘッダの最大サイズ (byte単位)を指定します。
HTTPリクエスト受信バッファサイズにも反映されます。
デフォルト値は4096 (4KB) です。

AJPリスナ利用時のHTTPヘッダ最大サイズはAJPプロトコルの制限により8KB固定です。

※HTTPリクエスト受信バッファサイズとはソケットからHTTPリクエストデータを一回で読み込む最大サイズです。
domain.xml ■運用管理コンソールへの設定例
<ドメイン名>
 -「アプリケーションサーバ」
  -「HTTPサービス」
   -「HTTPリスナ」
    -<リスナ名>
の順にクリックしていき、「操作」タブの「プロパティの設定」に記述を行います。
「maxHttpHeaderSize=8000」

■運用管理コマンドでの設定例
  otxadmin> set server.http-service.http-listener.http-listener-1.property.maxHttpHeaderSize=8000

■domain.xmlへの設定例
http-listener要素にpropertyを設定します。
<http-listener>
 <property name="maxHttpHeaderSize" value="8000" />
</http-listener>
maxKeepAliveRequests サーバが接続を閉じるまでにパイプラインされるHTTP リクエストの最大個数を指定します。 この属性を 1 にセットするとHTTP/1.1 の keep-alive とパイプラインが禁止されます。 これを -1 にセットすると、無制限の個数のパイプライン化または keep-alive の HTTP リクエストが許可されます。
デフォルト値は100です。
domain.xml ■運用管理コンソールへの設定例
<ドメイン名>
 -「アプリケーションサーバ」
  -「HTTPサービス」
   -「HTTPリスナ」
    -<リスナ名>
の順にクリックしていき、「操作」タブの「プロパティの設定」に記述を行います。
「maxKeepAliveRequests=100」

■運用管理コマンドでの設定例
  otxadmin> set server.http-service.http-listener.http-listener-1.property.maxKeepAliveRequests=100

■domain.xmlへの設定例
http-listener要素にpropertyを設定します。
<http-listener>
 <property name="maxKeepAliveRequests" value="100" />
</http-listener>
noCompressionUserAgents compression の機能を用いないHTTP クライアントの user-agent をマッチする正規表現のカンマ区切りの並びで指定します。
デフォルト値は空文字列 (正規表現のマッチングをしません) です。
domain.xml ■運用管理コンソールへの設定例
<ドメイン名>
 -「アプリケーションサーバ」
  -「HTTPサービス」
   -「HTTPリスナ」
    -<リスナ名>
の順にクリックしていき、「操作」タブの「プロパティの設定」に記述を行います。
「noCompressioUserAgents=opera」

■運用管理コマンドでの設定例
  otxadmin> set server.http-service.http-listener.http-listener-1.property.noCompressioUserAgents=opera

■domain.xmlへの設定例
http-listener要素にpropertyを設定します。
<http-listener>
 <property name="noCompressionUserAgents" value="opera" />
</http-listener>
restrictedUserAgents keep aliveの機能を用いないHTTP クライアントの user-agent をマッチする正規表現のカンマ区切りの並びで指定します。
デフォルト値は空文字列 (正規表現のマッチングをしません) です。
domain.xml ■運用管理コンソールへの設定例
<ドメイン名>
 -「アプリケーションサーバ」
  -「HTTPサービス」
   -「HTTPリスナ」
    -<リスナ名>
の順にクリックしていき、「操作」タブの「プロパティの設定」に記述を行います。
「restrictedUserAgents=opera」

■運用管理コマンドでの設定例
  otxadmin> set server.http-service.http-listener.http-listener-1.property.restrictedUserAgents=opera

■domain.xmlへの設定例
http-listener要素にpropertyを設定します。
<http-listener>
 <property name="restrictedUserAgents" value="opera" />
</http-listener>
server HTTPレスポンスの「Server」ヘッダに返す値を指定します。
デフォルト値は"WebOTX_Web_Container/<バージョン番号>"です。
domain.xml ■運用管理コンソールへの設定例
<ドメイン名>
 -「アプリケーションサーバ」
  -「HTTPサービス」
   -「HTTPリスナ」
    -<リスナ名>
の順にクリックしていき、「操作」タブの「プロパティの設定」に記述を行います。
「server=WebOTX_Web_Container/8.1」

■運用管理コマンドでの設定例
  otxadmin> set server.http-service.http-listener.http-listener-1.property.server=WebOTX_Web_Container/8.1

■domain.xmlへの設定例
http-listener要素にpropertyを設定します。
<http-listener>
 <property name="server" value="WebOTX_Web_Container/8.1" />
</http-listener>
socketBuffer ソケットの出力バッファサイズ(byte単位)を指定します。-1にするとバッファを使用しません。
デフォルト値は9000(bytes)です。
domain.xml ■運用管理コンソールへの設定例
<ドメイン名>
 -「アプリケーションサーバ」
  -「HTTPサービス」
   -「HTTPリスナ」
    -<リスナ名>
の順にクリックしていき、「操作」タブの「プロパティの設定」に記述を行います。
「socket-buffer=4096」

■運用管理コマンドでの設定例
  otxadmin> set server.http-service.http-listener.http-listener-1.property.socket-buffer=4096

■domain.xmlへの設定例
http-listener要素にpropertyを設定します。
<http-listener>
 <property name="socket-buffer" value="4096" />
</http-listener>
threadPriority リクエスト処理を行うプロセスのスレッド優先順位を指定します。
デフォルト値は5です。
domain.xml ■運用管理コンソールへの設定例
<ドメイン名>
 -「アプリケーションサーバ」
  -「HTTPサービス」
   -「HTTPリスナ」
    -<リスナ名>
の順にクリックしていき、「操作」タブの「プロパティの設定」に記述を行います。
「thread-priority=10」

■運用管理コマンドでの設定例
  otxadmin> set server.http-service.http-listener.http-listener-1.property.thread-priority=10

■domain.xmlへの設定例
http-listener要素にpropertyを設定します。
<http-listener>
 <property name="threadPriority" value="10" />
</http-listener>


コネクタ(AJP)

表2.5.1-3
項目 説明 設定箇所 設定方法
backlog このサーバへの接続バックログ数(接続要求キューのサイズ)を指定します。この値を超えて要求された全てのリクエストは拒否されます。
デフォルト値は 10 です。
domain.xml ■運用管理コンソールへの設定例
<ドメイン名>
 -「アプリケーションサーバ」
  -「HTTPサービス」
   -「AJPリスナ」
    -<リスナ名>
の順にクリックしていき、「属性」タブの「チューニング」の「リクエスト受け付け用ソケットのバックログ」に記述を行います。
「10」

■運用管理コマンドでの設定例
  otxadmin> set server.http-service.http-listener.ajp-listener-1.accept-count=10

■domain.xmlへの設定例
http-listener要素に設定します。
<http-service>
 <http-listener accept-count="10" />
</http-service>
packetSize AJPパケットの最大値(byte)を指定します。
デフォルト値は8192 (8KByte)であり、指定可能な最大値は65535です。
domain.xml ■運用管理コンソールへの設定例
<ドメイン名>
 -「アプリケーションサーバ」
  -「HTTPサービス」
   -「AJPリスナ」
    -<リスナ名>
の順にクリックしていき、「操作」タブの「プロパティの設定」に記述を行います。
「packetSize=10000」

■運用管理コマンドでの設定例
  otxadmin> set server.http-service.http-listener.ajp-listener-1.property.packetSize=10000

■domain.xmlへの設定例
http-listener要素にpropertyを設定します。
<http-listener>
 <property name="packetSize" value="10000" />
</http-listener>
tomcatAuthentication 認証処理をWebOTX側で行うかどうかを指定します。
デフォルト値はtrueです。
domain.xml ■運用管理コンソールへの設定例
<ドメイン名>
 -「アプリケーションサーバ」
  -「HTTPサービス」
   -「AJPリスナ」
    -<リスナ名>
の順にクリックしていき、「操作」タブの「プロパティの設定」に記述を行います。
「otxAuthentication=false」

■運用管理コマンドでの設定例
  otxadmin> set server.http-service.http-listener.ajp-listener-1.property.otxAuthentication=false

■domain.xmlへの設定例
http-listener要素にpropertyを設定します。
<http-listener>
 <property name="otxAuthentication" value="false" />
</http-listener>


コンテキスト(共通)

表2.5.1-4
項目 説明 設定箇所 設定方法
backgroundProcessorDelay このコンテキストおよびその子コンテナでの backgroundProcess メソッドの呼出しと呼出しの間の遅延時間(秒) を指定します。 子コンテナの遅延値が非負ならば子コンテナが自分自身の処理スレッドを使うことを意味するため、コンテキストの処理スレッドがわざわざ子コンテナのメソッドを呼び出すことはしません。この値を正にすると、そのコンテキスト用の処理スレッドが1本生成され、指定された秒数だけ待ってから、このスレッドは このコンテキストおよびその子コンテナすべての backgroundProcess メソッドをどれか1個呼び出します。コンテキストは background 処理を使ってセッションの有効期限切らしと再ロードのためのクラス監視を実行します。
デフォルト値は -1 です。 これはコンテキストが自分の親であるホストの background 処理スレッドに頼ることを意味します。
nec-web.xml
■nec-web.xmlへの設定例
manager-properties要素にpropertyを設定します。
<nec-web-app>
 <session-config>
  <session-manager>
   <manager-properties>
    <property name="reapIntervalSeconds" value="-1" />

cookies クライアントがクッキーをサポートしているとき、セッション管理にクッキーを使いたい場合は、true にセットしてください。 セッション管理にクッキーを使うことを禁止し、アプリケーションによるURL Rewritingだけに頼りたい場合はこの値を false にしてください。
デフォルト値はtrueです。
nec-web.xml
または
doman.xml
■運用管理コンソールへの設定例
<ドメイン名>
 -「アプリケーション」
  -「Webモジュール」
    -<Webモジュール名>
の順にクリックしていき、「属性」タブの「セッションIDの管理」にチェックを行います。

■運用管理コマンドでの設定例
  otxadmin> set server.applications.web-module.<Webアプリケーション名>.cookies=true

■nec-web.xmlへの設定例
session-properties要素にpropertyを設定します。
<nec-web-app>
 <session-config>
   <session-properties>
    <property name="enableCookies" value="false" />

■domain.xmlへの設定例
applications要素のweb-module要素に設定します。
<applications>
 <web-module cookies="true" />
</applications>
crossContext このアプリケーション内での ServletContext.getContext() の呼出しが、この仮想ホストで走っている他のwebアプリケーションへのリクエストディスパッチャを成功裏に返すようにしたい場合は、これをtrueにしてください。 セキュリティを意識した環境で、getContext() が常にnullを返すようにしたいならば、これをfalseにしてください。
デフォルト値はfalseです。
nec-web.xml
または
doman.xml
■運用管理コンソールへの設定例
<ドメイン名>
 -「アプリケーション」
  -「Webモジュール」
    -<Webモジュール名>
の順にクリックしていき、「属性」タブの「他モジュールへのアクセス」にチェックを行います。

■運用管理コマンドでの設定例
  otxadmin> set server.applications.web-module.<Webアプリケーション名>.cross-context=true

■nec-web.xmlへの設定例
nec-web-app要素にpropertyを設定します。
<nec-web-app>
 <property name="crossContextAllowed" value="true" />
</nec-web-app>

■domain.xmlへの設定例
applications要素のweb-module要素に設定します。
<applications>
 <web-module cross-context="true" />
</applications>
docBase このwebアプリケーションのためのDocument Base (別名 Context Root ) ディレクトリ、またはWAR ファイルへの絶対パス名を指定します。
デフォルト値は${com.nec.webotx.instanceRoot}/applications/j2ee-modules/<Webアプリケーション名>です。
doman.xml ■運用管理コンソールへの設定例
<ドメイン名>
 -「アプリケーション」
  -「Webモジュール」
    -<Webモジュール名>
の順にクリックしていき、「属性」タブの「パス」で確認ができます。この項目の設定変更はできません。

■運用管理コマンドでの設定例
  otxadmin> set server.applications.web-module.<Webアプリケーション名>.location="${com.nec.webotx.instanceRoot}/applications/j2ee-modules/<Webアプリケーション名>"

■domain.xmlへの設定例
applications要素のweb-module要素に設定します。
<applications>
 <web-module location="${com.nec.webotx.instanceRoot}/applications/j2ee-modules/<Webアプリケーション名>" />
</applications>
override この値をtrueに指定すると、自分のホストのDefaultContext要素での対応する設定を上書きします。
デフォルト値はfalseであり、DefaultContext要素での設定が使用されます。
doman.xml ■運用管理コンソールへの設定例
<ドメイン名>
 -「アプリケーション」
  -「Webモジュール」
    -<Webモジュール名>
の順にクリックしていき、「属性」タブの「他モジュールへのアクセス」にチェックを行います。

■運用管理コマンドでの設定例
  otxadmin> set server.applications.web-module.<Webアプリケーション名>.override=true

■domain.xmlへの設定例
applications要素のweb-module要素に設定します。
<applications>
 <web-module override="false" />
</applications>
privileged このcontextがmanagerサーブレットのようなコンテナサーブレットを使えるようにしたい場合は、これを true に指定してください。
デフォルト値はfalseです。
doman.xml ■運用管理コンソールへの設定例
<ドメイン名>
 -「アプリケーション」
  -「Webモジュール」
    -<Webモジュール名>
の順にクリックしていき、「属性」タブの「内部クラスへのアクセス」にチェックを行います。

■運用管理コマンドでの設定例
  otxadmin> set server.applications.web-module.<Webアプリケーション名>.privileged=false

■domain.xmlへの設定例
applications要素のweb-module要素に設定します。
<applications>
 <web-module privileged="false" />
</applications>
path このwebアプリケーションのコンテキストパスを指定します。アプリケーションを配備する時に"コンテキストルート"として指定します。

※コンテキストパスに "/" を含めると一部機能が利用できなくなります。詳しくは [ 注意制限事項 > 3. Webコンテナ > 3.1. 注意事項] を参照してください。
doman.xml ■運用管理コンソールへの設定例
<ドメイン名>
 -「アプリケーション」
  -「Webモジュール」
    -<Webモジュール名>
の順にクリックしていき、「属性」タブの「コンテキストルート」で確認ができます。この項目の設定変更はできません。

■運用管理コマンドでの設定例
  otxadmin> set server.applications.web-module.<Webアプリケーション名>.context-root=xxxx

■domain.xmlへの設定例
applications要素のweb-module要素に設定します。
<applications>
 <web-module context-root="xxxx" />
</applications>
reloadable /WEB-INF/classes/と/WEB-INF/libにあるクラスが変更されていないかどうかを監視します。変更の検出時に自動的にそのwebアプリケーションを再ロードさせたい場合はこの値をtrueに指定してください。 この機能はアプリケーション開発時には非常に有用ですが、顕著な実行時オーバヘッドを要するため、製品アプリケーションを配備して使用するときには勧められません。
デフォルト値はfalseです。
nec-web.xml
または
doman.xml
■運用管理コンソールへの設定例
<ドメイン名>
 -「アプリケーション」
  -「Webモジュール」
    -<Webモジュール名>
の順にクリックしていき、「属性」タブの「自動リロード」にチェックを行います。

■運用管理コマンドでの設定例
  otxadmin> set server.applications.web-module.<Webアプリケーション名>.reloadable=true

■nec-web.xmlへの設定例
nec-web-app要素にpropertyを設定します。
<nec-web-app>
 <property name="relodable" value="true" />
</nec-web-app>

■domain.xmlへの設定例
applications要素のweb-module要素に設定します。
<applications>
 <web-module relodable="true" />
</applications>


コンテキスト(Standard)

表2.5.1-5
項目 説明 設定箇所 設定方法
allowLinking webアプリケーション内でシンボリックリンク(webアプリケーションのbase pathの外側のリソースを参照できる)を有効にするかを指定します。
デフォルト値はfalseです。

注意: Windowsプラットフォームまたは他の英字の大小を区別するファイルシステムを持たないOSにおいて、この値をtrueにすべきではありません。case sensitivity check を無効にしてJSPソースコードの暴露を許すことになるセキュリティ問題があります。
nec-web.xml
または
doman.xml
Webアプリケーション配備解除や再配備すると設定が消えます。nec-web.xmlに記述するようにしてください。

■運用管理コンソールへの設定例
<ドメイン名>
 -「アプリケーション」
  -「Webモジュール」
   -<Webモジュール名>
の順にクリックしていき、「操作」タブの「プロパティの設定」に記述を行います。
「allowLinking=true」

■運用管理コマンドでの設定例
  otxadmin> set server.applications.web-module.<Webアプリケーション名>.property.allowLinking=true

■nec-web.xmlへの設定例
nec-web-app要素にpropertyを設定します。
<nec-web-app>
 <property name="allowLinking" value="true" />
</nec-web-app>

■domain.xmlへの設定例
web-module要素のpropertyに設定します。
<web-module>
 <property name="allowLinking" value="true" />
</web-module>
antiJARLocking この値をtrueにすると、クラスローダはリソースをJAR内部からURL経由でアクセスするとき、JARファイルロッキングを回避するように特別な手段をとります。これはアプリケーションの起動時間に多少の遅延が生じますが、ファイルロッキングが起こり得るプラットフォームや設定状況によっては有用です。
デフォルト値はfalseです。
nec-web.xml
または
doman.xml
Webアプリケーション配備解除や再配備すると設定が消えます。nec-web.xmlに記述するようにしてください。

■運用管理コンソールへの設定例
<ドメイン名>
 -「アプリケーション」
  -「Webモジュール」
   -<Webモジュール名>
の順にクリックしていき、「操作」タブの「プロパティの設定」に記述を行います。
「antiJARLocking=true」

■運用管理コマンドでの設定例
  otxadmin> set server.applications.web-module.<Webアプリケーション名>.property.antiJARLocking=true

■nec-web.xmlへの設定例
nec-web-app要素にpropertyを設定します。
<nec-web-app>
 <property name="antiJARLocking" value="true" />
</nec-web-app>

■domain.xmlへの設定例
web-module要素のpropertyに設定します。
<web-module>
 <property name="antiJARLocking" value="true" />
</web-module>
antiResourceLocking この値をtrueにすると、すべての場合のファイルロッキングを防ぎます。これはアプリケーションの起動時間に大幅な遅延が生じますが、ファイル ロッキングが起こり得るプラットフォームや設定状況でのwebアプリの完全なホットデプロイやデプロイ解除を可能にします。
デフォルト値はtrueです。
nec-web.xml
または
doman.xml
Webアプリケーション配備解除や再配備すると設定が消えます。nec-web.xmlに記述するようにしてください。

■運用管理コンソールへの設定例
<ドメイン名>
 -「アプリケーション」
  -「Webモジュール」
   -<Webモジュール名>
の順にクリックしていき、「操作」タブの「プロパティの設定」に記述を行います。
「antiResourceLocking=true」

■運用管理コマンドでの設定例
  otxadmin> set server.applications.web-module.<Webアプリケーション名>.property.antiResourceLocking=true

■nec-web.xmlへの設定例
nec-web-app要素にpropertyを設定します。
<nec-web-app>
 <property name="antiResourceLocking" value="true" />
</nec-web-app>

■domain.xmlへの設定例
web-module要素のpropertyに設定します。
<web-module>
 <property name="antiResourceLocking" value="true" />
</web-module>
cacheMaxSize kbyte単位での静的リソースキャッシュの最大サイズを指定します。
デフォルト値は10240(10MB)です。
nec-web.xml
または
doman.xml
Webアプリケーション配備解除や再配備すると設定が消えます。nec-web.xmlに記述するようにしてください。

■運用管理コンソールへの設定例
<ドメイン名>
 -「アプリケーション」
  -「Webモジュール」
   -<Webモジュール名>
の順にクリックしていき、「操作」タブの「プロパティの設定」に記述を行います。
「cacheMaxSize=10240」

■運用管理コマンドでの設定例
  otxadmin> set server.applications.web-module.<Webアプリケーション名>.property.cacheMaxSize=10240

■nec-web.xmlへの設定例
nec-web-app要素にpropertyを設定します。
<nec-web-app>
 <property name="cacheMaxSize" value="10240" />
</nec-web-app>

■domain.xmlへの設定例
web-module要素のpropertyに設定します。
<web-module>
 <property name="cacheMaxSize" value="10240" />
</web-module>
cacheTTL キャッシュエントリの再バリデーション (revalidation) 間隔をミリ秒単位で指定します。
デフォルト値は 5000 (5 秒)です。
nec-web.xml
または
doman.xml
Webアプリケーション配備解除や再配備すると設定が消えます。nec-web.xmlに記述するようにしてください。

■運用管理コンソールへの設定例
<ドメイン名>
 -「アプリケーション」
  -「Webモジュール」
   -<Webモジュール名>
の順にクリックしていき、「操作」タブの「プロパティの設定」に記述を行います。
「cacheTTL=5000」

■運用管理コマンドでの設定例
  otxadmin> set server.applications.web-module.<Webアプリケーション名>.property.cacheTTL=5000

■nec-web.xmlへの設定例
nec-web-app要素にpropertyを設定します。
<nec-web-app>
 <property name="cacheTTL" value="5000" />
</nec-web-app>

■domain.xmlへの設定例
web-module要素のpropertyに設定します。
<web-module>
 <property name="cacheTTL" value="5000" />
</web-module>
cachingAllowed 静的リソースに対してキャッシュを行うかどうかを指定します。
デフォルト値はtrueです。
nec-web.xml
または
doman.xml
Webアプリケーション配備解除や再配備すると設定が消えます。nec-web.xmlに記述するようにしてください。

■運用管理コンソールへの設定例
<ドメイン名>
 -「アプリケーション」
  -「Webモジュール」
   -<Webモジュール名>
の順にクリックしていき、「操作」タブの「プロパティの設定」に記述を行います。
「cachingAllowed=false」

■運用管理コマンドでの設定例
  otxadmin> set server.applications.web-module.<Webアプリケーション名>.property.cachingAllowed=false

■nec-web.xmlへの設定例
nec-web-app要素にpropertyを設定します。
<nec-web-app>
 <property name="cachingAllowed" value="false" />
</nec-web-app>

■domain.xmlへの設定例
web-module要素のpropertyに設定します。
<web-module>
 <property name="cachingAllowed" value="false" />
</web-module>
caseSensitive この値をtrueに指定すると、すべてのcase sensitivity check が無効にされます。
デフォルト値はtrueです。

注意: Windowsプラットフォームまたは他の英字の大小を区別するファイルシステムを持たないOSにおいて、この値をtrueにすべきではありません。case sensitivity check を無効にしてJSPソースコードの暴露を許すことになるセキュリティ問題があります。
nec-web.xml
または
doman.xml
Webアプリケーション配備解除や再配備すると設定が消えます。nec-web.xmlに記述するようにしてください。

■運用管理コンソールへの設定例
<ドメイン名>
 -「アプリケーション」
  -「Webモジュール」
   -<Webモジュール名>
の順にクリックしていき、「操作」タブの「プロパティの設定」に記述を行います。
「caseSensitive=false」

■運用管理コマンドでの設定例
  otxadmin> set server.applications.web-module.<Webアプリケーション名>.property.caseSensitive=false

■nec-web.xmlへの設定例
nec-web-app要素にpropertyを設定します。
<nec-web-app>
 <property name="caseSensitive" value="false" />
</nec-web-app>

■domain.xmlへの設定例
web-module要素のpropertyに設定します。
<web-module>
 <property name="caseSensitive" value="false" />
</web-module>
processTlds コンテキストが起動時にTLD [Tag Library Descriptor] を処理すべきかどうかを指定します。
デフォルト値はtrueです。
nec-web.xml
または
doman.xml
Webアプリケーション配備解除や再配備すると設定が消えます。nec-web.xmlに記述するようにしてください。

■運用管理コンソールへの設定例
<ドメイン名>
 -「アプリケーション」
  -「Webモジュール」
   -<Webモジュール名>
の順にクリックしていき、「操作」タブの「プロパティの設定」に記述を行います。
「processTlds=false」

■運用管理コマンドでの設定例
  otxadmin> set server.applications.web-module.<Webアプリケーション名>.property.processTlds=false

■nec-web.xmlへの設定例
nec-web-app要素にpropertyを設定します。
<nec-web-app>
 <property name="processTlds" value="false" />
</nec-web-app>

■domain.xmlへの設定例
web-module要素のpropertyに設定します。
<web-module>
 <property name="processTlds" value="false" />
</web-module>
swallowOutput この値をtrueに指定すると、webアプリケーションによるSystem.outとSystem.errへのバイト出力がwebアプリケーションのlogger へリダイレクトされます。
デフォルト値はfalseです。
nec-web.xml
または
doman.xml
Webアプリケーション配備解除や再配備すると設定が消えます。nec-web.xmlに記述するようにしてください。

■運用管理コンソールへの設定例
<ドメイン名>
 -「アプリケーション」
  -「Webモジュール」
   -<Webモジュール名>
の順にクリックしていき、「操作」タブの「プロパティの設定」に記述を行います。
「swallow-output=true」

■運用管理コマンドでの設定例
  otxadmin> set server.applications.web-module.<Webアプリケーション名>.property.swallow-output=true

■nec-web.xmlへの設定例
nec-web-app要素にpropertyを設定します。
<nec-web-app>
 <property name="swallowOutput" value="true" />
</nec-web-app>

■domain.xmlへの設定例
web-module要素のpropertyに設定します。
<web-module>
 <property name="swallow-output" value="true" />
</web-module>
tldNamespaceAware この値をtrueに指定すると、TLDファイルの XMLバリデーションが名前空間対応 (namespace-aware) になります。
デフォルト値はfalseです。
nec-web.xml
または
doman.xml
Webアプリケーション配備解除や再配備すると設定が消えます。nec-web.xmlに記述するようにしてください。

■運用管理コンソールへの設定例
<ドメイン名>
 -「アプリケーション」
  -「Webモジュール」
   -<Webモジュール名>
の順にクリックしていき、「操作」タブの「プロパティの設定」に記述を行います。
「tldNamespaceAware=true」

■運用管理コマンドでの設定例
  otxadmin> set server.applications.web-module.<Webアプリケーション名>.property.tldNamespaceAware=true

■nec-web.xmlへの設定例
nec-web-app要素にpropertyを設定します。
<nec-web-app>
 <property name="tldNamespaceAware" value="true" />
</nec-web-app>

■domain.xmlへの設定例
web-module要素のpropertyに設定します。
<web-module>
 <property name="tldNamespaceAware" value="true" />
</web-module>
tldValidation この値をtrueに指定すると、TLD ファイルが起動時にXMLバリデーションを受けとります。
デフォルト値はfalseです。
nec-web.xml
または
doman.xml
Webアプリケーション配備解除や再配備すると設定が消えます。nec-web.xmlに記述するようにしてください。

■運用管理コンソールへの設定例
<ドメイン名>
 -「アプリケーション」
  -「Webモジュール」
   -<Webモジュール名>
の順にクリックしていき、「操作」タブの「プロパティの設定」に記述を行います。
「tldValidation=true」

■運用管理コマンドでの設定例
  otxadmin> set server.applications.web-module.<Webアプリケーション名>.property.tldValidation=true

■nec-web.xmlへの設定例
nec-web-app要素にpropertyを設定します。
<nec-web-app>
 <property name="tldValidation" value="true" />
</nec-web-app>

■domain.xmlへの設定例
web-module要素のpropertyに設定します。
<web-module>
 <property name="tldValidation" value="true" />
</web-module>
unloadDelay サーブレットがアンロードされるまでコンテナが待つ時間 (ミリ秒単位)を指定します。
デフォルト値は2000(ミリ秒)です。
nec-web.xml
または
doman.xml
Webアプリケーション配備解除や再配備すると設定が消えます。nec-web.xmlに記述するようにしてください。

■運用管理コンソールへの設定例
<ドメイン名>
 -「アプリケーション」
  -「Webモジュール」
   -<Webモジュール名>
の順にクリックしていき、「操作」タブの「プロパティの設定」に記述を行います。
「unloadDelay=5000」

■運用管理コマンドでの設定例
  otxadmin> set server.applications.web-module.<Webアプリケーション名>.property.unloadDelay=5000

■nec-web.xmlへの設定例
nec-web-app要素にpropertyを設定します。
<nec-web-app>
 <property name="unloadDelay" value="5000" />
</nec-web-app>

■domain.xmlへの設定例
web-module要素のpropertyに設定します。
<web-module>
 <property name="unloadDelay" value="5000" />
</web-module>
unpackWAR この値をtrueに指定すると、圧縮されたwebアプリケーションを動作させる前にそれをすべて展開します。
デフォルト値はtrueです。
nec-web.xml
または
doman.xml
Webアプリケーション配備解除や再配備すると設定が消えます。nec-web.xmlに記述するようにしてください。

■運用管理コンソールへの設定例
<ドメイン名>
 -「アプリケーション」
  -「Webモジュール」
   -<Webモジュール名>
の順にクリックしていき、「操作」タブの「プロパティの設定」に記述を行います。
「unpackWAR=true」

■運用管理コマンドでの設定例
  otxadmin> set server.applications.web-module.<Webアプリケーション名>.property.unpackWAR=true

■nec-web.xmlへの設定例
nec-web-app要素にpropertyを設定します。
<nec-web-app>
 <property name="unpackWAR" value="true" />
</nec-web-app>

■domain.xmlへの設定例
web-module要素のpropertyに設定します。
<web-module>
 <property name="unpackWAR" value="true" />
</web-module>
workDir 関連するwebアプリケーション内のサーブレットが一時的な読み書きに使うために、コンテキストが用意するスクラッチディレクトリ (scratch directory)への絶対パス名を指定します。このディレクトリはServlet Specification に記述されるように javax.servlet.context.tempdir という名前の (java.io.File 型の) サーブレット context 属性によってwebアプリケーション内のサーブレットから可視になります。
デフォルト値は<domain_dir>/generated/jsp/j2ee-modules/<appname> です。
nec-web.xml ■nec-web.xmlへの設定例
nec-web-app要素にpropertyを設定します。
<nec-web-app>
 <property name="tempdir" value="true" />
</nec-web-app>


Manager(共通)

表2.5.1-6
項目 説明 設定箇所 設定方法
distributable このアプリケーションでセッションレプリケーションを行いたい場合に、distributable 属性を記述します。デフォルトでは記述されていません。distributable 属性が指定されているとき、直列化不可能(Serializable)なオブジェクトをセッションに格納しようとすると IllegalArgumentException が発生します。

※セッションレプリケーション(JNDIサーバへのセッション情報の登録)は次のメソッド処理の延長で実行されます。
HttpServletRequest#getSession()
HttpSession#getAttribute()
HttpSession#getAttributeNames()
HttpSession#removeAttribute()
HttpSession#setAttribute()
HttpSession#invalidate()
HttpSession#getMaxInactiveInterval()
HttpSession#setMaxInactiveInterval()
web.xml ■web.xmlへの設定例
web-app要素に記述します。
<web-app>
 <distributable />
</web-app>


Manager(Standard)

表2.5.1-7
項目 説明 設定箇所 設定方法
maxActiveSessions マネージャによって生成されるアクティブ・セッションの最大数を制限します。
-1 (デフォルト値) にすると、セッションは無制限に生成されます。
nec-web.xml ■nec-web.xmlへの設定例
manager-properties要素にpropertyを設定します。
<nec-web-app>
 <session-config>
  <session-manager>
   <manager-properties>
    <property name="maxSessions" value="3000" />

maxInactiveInterval セッションタイムアウトの監視を行う間隔を指定します。
デフォルト値は60(秒)です。
nec-web.xml ■nec-web.xmlへの設定例
manager-properties要素にpropertyを設定します。
<nec-web-app>
 <session-config>
  <session-manager>
   <manager-properties>
    <property name="reapIntervalSeconds" value="60" />

pathname アプリケーション再起動時に保存されるセッション状態を記述したファイルの格納場所を指定します。
デフォルト値は workDir/SESSIONS.ser です。
nec-web.xml ■nec-web.xmlへの設定例
manager-properties要素にpropertyを設定します。
<nec-web-app>
 <session-config>
  <session-manager>
   <manager-properties>
    <property name="sessionFilename" value="<ファイルパス>" />



Realm
JDBCレルムについてはWebOTX マニュアルの [ ドメイン構築・基本設定ガイド > 4. ユーザ管理 > 4.2. レルムの設定 > 4.2.3. JDBCレルム ]を参照してください。

表2.5.1-8
項目 説明 設定箇所 設定方法
classname JDBCレルムに使用するクラス名を記述します domain.xml JDBCレルムの設定は下記のプロパティをまとめて設定します。

■運用管理コンソールへの設定例
<ドメイン名>
 -「アプリケーションサーバ」
  -「セキュリティサービス」
の順にクリックしていき、「操作」タブの「認証レルムの作成」にて設定します。

■運用管理コマンドでの設定例
  otxadmin> create-auth-realm --classname
com.nec.webotx.enterprise.security.auth.realm.jdbc.JDBCRealm
--property "driverName=oracle.jdbc.driver.OracleDriver
.jaas-context=JDBCRealm:connectionURL=jdbc\:oracle\:thin\:
@OraclServer\:1521\:OracleDB:connectionName=scott:
connectionPassword=tiger:userTable=jdbc_user:userNameCol=
userid:userCredCol=passwd:userRoleTable=jdbc_role:
roleNameCol=role:digest=MD5:digestEncoding=Shift_JIS"
JDBCRealm1


■domain.xmlへの設定例
security-service要素のauth-realm要素に設定します。
<security-service>
 <auth-realm classname="com.nec.webotx.enterprise.security.
auth.realm.jdbc.JDBCRealm" >
  <property name="connectionName" value="scott" />
  <property name="connectionPassword" value="tiger" />
  <property name="connectionURL" value="jdbc:oracle:thin:@OraclServer:1521:OracleDB" />
  <property name="digest" value="MD5" />
  <property name="digestEncoding" value="Shift_JIS" />
  <property name="driverName" value="oracle.jdbc.driver.OracleDriver" />
  <property name="roleNameCol" value="role" />
  <property name="userCredCol" value="passwd" />
  <property name="userNameCol" value="userid" />
  <property name="userRoleTable" value="jdbc_role" />
  <property name="userTable" value="jdbc_user" />
 </auth-realm>
</security-service>
connectionName データベースにJDBC接続するためのユーザ名を記述します。
connectionPassword データベースにJDBC接続するためのパスワードを記述します。
connectionURL データベースにJDBC接続するためのURLを記述します。
digest データベースに格納されているパスワードの暗号方式を指定します。
デフォルトではクリアテキストで保存されます。
digestEncoding "digest"によって指定された暗号方式によって暗号化を行う際のエンコード形式を指定します。
デフォルト値はOSの設定に依存します。
driverName 使用するJDBCドライバのクラス名を記述します。
roleNameCol 対応するユーザを含む "user roles"テーブルの列名を記述します。
userCredCol 対応するパスワードを含む"users" テーブルの列名を記述します。
userNameCol ユーザ名を含む、"users"と"user roles"テーブルの列名を記述します。
userRoleTable 記述したuserNameColとroleNameColを含む "user roles"テーブルの名前を記述します。
userTable 記述したuserNameColとuserCredColを含む "users"テーブルの名前を記述します。


Loader

表2.5.1-9
項目 説明 設定箇所 設定方法
delegate Webアプリケーションを読み込む際にクラスをロードするかどうかを指定します。
デフォルト値はtrueです。
nec-web.xml ■nec-web.xmlへの設定例
class-loader要素に設定します。
<nec-web-app>
 <class-loader delegate="true" />
</nec-web-app>
loaderClass クラスローダに独自のクラスを指定する場合に指定します。
デフォルト値はありません。

loaderNameにはTomcat の"org.apache.catalina.loader.WebappLoader"クラスを継承した独自のクラス名を指定してください。classloaderNameにはTomcat の"org.apache.catalina.loader.WebappClassLoader"クラスを継承した独自のクラス名を指定してください。
nec-web.xml
または
doman.xml
■運用管理コンソールへの設定例
<ドメイン名>
 -「アプリケーションサーバ」
  -「Webコンテナ」
の順にクリックしていき、「操作」タブの「プロパティの設定」に記述を行います。
「loaderClass-/servlets-examples=
jp.co.nec.util.V8WebappLoader,jp.co.nec.util.
V8WebappClassLoader」

■運用管理コマンドでの設定例
  otxadmin> set server.web-container.property.loaderClass-/AP名=
WebappLoader名,WebappClassLoader名


■nec-web.xmlへの設定例
class-loader要素にpropertyを設定します。
<nec-web-app>
     <class-loader>
  <property name="loaderName" value="WebappLoader名" />
  <property name="classloaderName" value="WebappClassLoader名" />
     </class-loader>
</nec-web-app>

■domain.xmlへの設定例
web-container要素のpropertyに設定します。
<web-container>
 <property name="loderClass-<AP名>" value="WebappLoader名,WebappClassLoader名" />
</web-container>


Single Sign On

表2.5.1-10
項目 説明 設定箇所 設定方法
cookieDomain シングルサインオンのためのクッキーを使用する場合に指定します。
デフォルト値はありません。
nec-web.xml ■nec-web.xmlへの設定例
cookie-properties要素にpropertyを設定します。
<nec-web-app>
 <session-config>
  <cookie-properties>
   <property name="cookieDomain" value="<クッキードメイン名>" />


Authentication

表2.5.1-11
項目 説明 設定箇所 設定方法
changeSessionIdOnAuthentication セッション固定攻撃を回避するために、認証時にWebアプリケーションがセッションIDを変更できるようにします。
デフォルト値はfalseです。
nec-web.xml
または
doman.xml
■nec-web.xmlへの設定例
nec-web-app要素にpropertyを設定します。
<nec-web-app>
 <property name="auth_<認証種別>_changeSessionIdOnAuthentication" value="true"/>
</nec-web-app>
■domain.xmlへの設定例
web-container要素のpropertyに設定します。
<web-container>
 <property name="auth_<認証種別>_changeSessionIdOnAuthentication" value="true"/>
</web-container>

※<認証種別>には、以下が指定可能です。
basic = BASIC認証
client = クライアント認証
form = FORM認証
digest = DIGEST認証
all = 全ての認証
cnonceCacheSize ※DIGEST認証のみ

リプレイ攻撃を防ぐために、ダイジェスト認証は、クライアントのノンス(cnonce)とノンスカウント(nc)値を追跡します。
この属性は、そのためのキャッシュのサイズを指定します。
指定されていない場合、デフォルト値の1000が使用されます。
nec-web.xml
または
doman.xml
■nec-web.xmlへの設定例
nec-web-app要素にpropertyを設定します。
<nec-web-app>
 <property name="auth_digest_cnonceCacheSize" value="100"/>
</nec-web-app>
■domain.xmlへの設定例
web-container要素のpropertyに設定します。
<web-container>
 <property name="auth_digest_cnonceCacheSize" value="100"/>
</web-container>

key ※DIGEST認証のみ

ダイジェスト認証で使用される秘密鍵を指定します。
これは通常、サーバーの再起動前後やクラスタ全体でキーの値を一定に保つ必要がある場合に設定する必要があります。
指定されていない場合は、セキュリティで保護された乱数値が生成されます。
nec-web.xml
または
doman.xml
■nec-web.xmlへの設定例
nec-web-app要素にpropertyを設定します。
<nec-web-app>
 <property name="auth_digest_key" value="digestkey"/>
</nec-web-app>
■domain.xmlへの設定例
web-container要素のpropertyに設定します。
<web-container>
 <property name="auth_digest_key" value="digestkey"/>
</web-container>

nonceValidity ※DIGEST認証のみ

生成されたnonce値が認証で使用するために有効とみなされる時間を指定します。
指定されていない場合は、300000(5分)のデフォルト値が使用されます。
単位はミリ秒です。
nec-web.xml
または
doman.xml
■nec-web.xmlへの設定例
nec-web-app要素にpropertyを設定します。
<nec-web-app>
 <property name="auth_digest_nonceValidity" value="60000"/>
</nec-web-app>
■domain.xmlへの設定例
web-container要素のpropertyに設定します。
<web-container>
 <property name="auth_digest_nonceValidity" value="60000"/>
</web-container>

opaque ※DIGEST認証のみ

ダイジェスト認証で使用されるサーバ"opaque"文字列を指定します。
これは通常、サーバーの再起動前後やクラスタ全体で "opaque"値を一定に保つ必要がある場合に設定する必要があります。
指定されていない場合は乱数値が生成されます。
nec-web.xml
または
doman.xml
■nec-web.xmlへの設定例
nec-web-app要素にpropertyを設定します。
<nec-web-app>
 <property name="auth_digest_opaque" value="opaque-string"/>
</nec-web-app>
■domain.xmlへの設定例
web-container要素のpropertyに設定します。
<web-container>
 <property name="auth_digest_opaque" value="opaque-string"/>
</web-container>

validateUri ※DIGEST認証のみ

これは通常、WebコンテナがリバースProxyの後ろに位置し、そのProxyがWebコンテナにURIを変更して渡し、その結果DIGEST認証に常に失敗する場合のみfalseを指定します。
指定されていない場合、デフォルト値のtrueが使用されます。
nec-web.xml
または
doman.xml
■nec-web.xmlへの設定例
nec-web-app要素にpropertyを設定します。
<nec-web-app>
 <property name="auth_digest_validateUri" value="false"/>
</nec-web-app>
■domain.xmlへの設定例
web-container要素のpropertyに設定します。
<web-container>
 <property name="auth_digest_validateUri" value="false"/>
</web-container>



2.5.2. JavaVMオプションのサポート

JavaVMオプションでの設定項目は[ リファレンス集 運用管理・設定編 > 1. コンフィグレーション(設定一覧) > 1.4. Webコンテナ > 1.4.2. Webコンテナ設定項目一覧 > 1.4.2.3. JavaVMオプションで設定可能な項目一覧 ]を参照してください。

2.6. Q&A

Tomcatからの移行時によく起きる問題やTomcatからの移行以外にもよくある質問に対するQ&Aをまとめました。

2.6.1. Webアプリケーションの実行エラーに関するQ&A

Q1 Webアプリケーションを実行するとClassCastExceptionが発生するのですが、どのような原因が考えられますか?

A1 対象となるクラスのロードが正しく行われていない可能性があります。nec-web.xmlの設定を変更して、クラスのロード処理を変えて、アプリケーションの動作を確認してください。以下の例を参考に"delegate=false"を設定したnec-web.xmlを追加してください。
【nec-web.xml】

<?xml version="1.0" encoding="UTF-8"?>
<nec-web-app xmlns="http://java.sun.com/xml/ns/j2ee">
  <context-root>context_name</context-root>
  <class-loader delegate="false"/>
</nec-web-app>

nec-web.xmlの詳細は[ 2.3. 移行作業 > 2.3.6.2. クラスロード優先順位の設定 ]を参照してください。

Q2 Webアプリケーションを実行するとセキュリティ例外が発生するのですが、どのような原因が考えられますか?

A2 セキュリティポリシーの追加が必要です。本資料の[ 2.3. 移行作業 > 2.3.7. セキュリティポリシーの設定 ]をご覧ください。

Q3 Webアプリケーションからのログが出力されないのですが、どのような原因が考えられますか?

A3 log4jの設定を変更してください。本資料の[ 2.3. 移行作業 > 2.3.5. log4jの設定 ]をご覧ください。

Q4 フィルタがうまく動作しないのですが、どのような原因が考えられますか?

A4 フィルタはServlet2.3仕様から追加された仕組みです。WebOTX V8 ではServlet2.5に準拠しているため、web.xml 先頭の version を 2.3、2.4または2.5 に変更してください。変更後のイメージは次のようになります。

<?xml version="1.0" encoding="Shift_JIS"?>
 <web-app xmlns="http://java.sun.com/xml/ns/j2ee" version="2.4" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">

Q5 getParameterで取得したデータが文字化けするのですが、どのような原因が考えられますか?

A5 Tomcat 6.xでは、URIのエンコードの指定のために、server.xmlでURIEncoding と useBodyEncodingForURI が指定できますが、WebOTX では、server.http-service.http-listener.http-listener-name.property で指定します。
それぞれ、運用管理コマンド(otxadminコマンド)を利用して、次のように指定します。

otxadmin> set server.http-service.http-listener.http-listener-1.property.URIEncoding=Windows-31J

otxadmin> set server.http-service.http-listener.http-listener-1.property.useBodyEncodingForURI=true

Q6 WebブラウザでJSPの出力を参照したとき、機種依存文字(鰍ネど)が文字化けするのですが、どのような原因が考えられますか?

A6 Web アプリケーションの表示で文字化けが発生する場合、次のステップで原因の調査と対処をしてくださ い。

  1. Servlet で、Content-Type による charset を正しく指定(出力)しているか確認します。
    Web ブラウザが表示する文字コードを判断するのに Content-Type を使用します。 Servlet が出力する文字のコードを Content-Type による charset で正しく指定する必要があります。 機種依存文字などを出力する際には、charset に”Windows-31J”を指定します。
  2. JSP で、page ディレクティブで、contentType を正しく指定しているか確認します。
    Servlet と同様に、出力する文字コードを contentType で指定します。 Servlet と同様、機種依存文字などを出力する際には、charset に“Windows-31J”を指定します。
  3. JSP で、page ディレクティブで pageEncoding を正しく指定しているかを確認します。
    pageEncoding は、JSP 自体がどのコードで記述されているかを示します。 個々のJSP では pageEncoding を指定せずに、まとめて指定することもできます。 web.xml で次のように<page-encoding> を指定します。
    【web.xml】
    <web-app  ....
      <jsp-config>
        <jsp-property-group>
          ....
          <page-encoding>Windows-31J</page-encoding>
        </jsp-property-group>
      </jsp-config>
      ....
      <servlet>
      ....
      </servlet>
    </web-app>
    

また、WebOTX V8では文字コードを強制的に指定することができるようになりました。以下に、Servlet/JSPへの入出力、エンコーディングを強制設定する機能について説明します。

  1. HTTPリクエスト

    エンコーディングを指定してリクエストのデータをどの文字コードとしてJavaで扱うUnicodeにデコードするか、 の設定があります。
    詳細は 01. HTTPリクエスト を参照してください。

  2. HTTPレスポンス

    レスポンス出力時、Javaで扱うUnicodeをどのエンコーディングを指定して、意図する文字コードにエンコード(レスポンス出力)するか の設定があります。
    詳細は 02. HTTPレスポンス を参照してください。

  3. jspファイルのコンパイル

    jspファイルがどの文字コードで記述されているか(どのエンコーディングを指定してJavaで扱うUnicodeにデコードするか) の設定があります。
    詳細は 03. jspファイルのコンパイル を参照してください。

  4. jspファイルのレスポンス

    JSPを実行した際、Javaで扱うUnicodeをどのエンコーディングを指定して、意図する文字コードにエンコード(レスポンス出力)するか の設定があります。
    詳細は 04. jspファイルのレスポンス を参照してください。

  5. ファイル入力/出力

    ファイルにアクセスするInputStream、OutputStreamを作成する際ユーザが文字コードを指定します。WebOTX独自の設定機能は存在しませんがJava VMオプション(-Dfile.encoding=<MS932等>)指定によりデフォルトキャラセットを変更可能

  6. データベースアクセス

    JDBCドライバに依存します。


※各設定で指定した文字コードはJavaのコンバータにより処理されます。

01. HTTPリクエスト

リクエストのデータをどの文字コードとして扱うかは通常、以下の処理順で決定されます。(ここで決定された文字コードはリクエストからデータを取得する際のInputStreamに適用されます。)

  1. Filter等でリクエストデータを参照する前に、ServletRequest.setCharcterEncoding()によりエンコーディングを設定した場合、そのエンコーディングでリクエストデータをデコードします。

  2. HTTPリクエストのヘッダ情報にcharset指定がある場合、そのエンコーディングでリクエストデータをデコードします。
    "Content-Type: application/x-www-form-urlencoded; charset=windows-31j" 等

  3. HTTPリクエストのヘッダ情報にcharset指定が無い場合、nec-web.xmlファイルに<locale-charset-info>要素を設定し、warファイルに予めアーカイブすることでリクエストデータのデコードに用いるデフォルトのエンコーディングを指定することができます。
    ※nec-web.xmlの例
    <locale-charset-info default-locale="ja">
     <locale-charset-map locale="ja" charset="windows-31j" />
     <parameter-encoding form-hint-field="penc" />
    </locale-charset-info>
    

    3-1) リクエストのパラメータ中に該当データ(この場合パラメータ名が(pencのデータpenc=x-IBM943C 等)があればそれをエンコーディングとして使用します。

    3-2) 3-1)が無い場合、リクエスト中のAccept-Language: ja、無ければnec-web.xmlの<locale-charset-info default-locale="ja">を取得します。<locale-charset-map>よりlocaleが一致するmapを検索し、そのcharsetでリクエストパラメータをUnicodeに変換します。

  4. 上記のいずれも無い場合、リクエストデータはデフォルトのエンコーディング"ISO-8859-1"でデコードされます。
02. HTTPレスポンス

レスポンスにデータをどの文字コードとして出力するかは通常、以下の処理順で決定されます。(ここで決定された文字コードはHTTPレスポンスのヘッダ情報(Content-Typeのcharset)とデータを出力する際のOutputStreamに適用されます)

  1. Servlet2.4の仕様でロケールおよび文字エンコードのマッピングをweb.xmlに指定できます。javax.servlet.ServletResponseのsetLocale()メソッドが呼ばれた時に参照され、指定したロケールに対応する文字コードが設定されます。
    ※web.xmlへの設定例
    <locale-encoding-mapping-list>
     <locale-encoding-mapping>
      <locale>ja</locale>
      <encoding>windows-31j</encoding>
     </locale-encoding-mapping>
     <locale-encoding-mapping>
      <locale>ko_KR</locale>
      <encoding>EUC-KR</encoding>
     </locale-encoding-mapping>
    </locale-encoding-mapping-list>
    

  2. ServletResponse.setContentType()にてcharsetが指定された場合、そのエンコーディングでエンコード(レスポンス出力)します。

  3. 上記の指定が無い場合、デフォルトのエンコーディング"ISO-8859-1"でエンコード(レスポンス出力)します。
03. jspファイルのコンパイル

jspファイルがどの文字コードで記述されているか(読み込み時どのエンコーディングでデコードするか)は通常、以下の処理で決定されます。(ここで決定されたエンコーディングはjspファイルを読み込む際のInputStremに適用されます)

  1. jspにpageEncoding指定が記述されている場合、そのエンコーディングでjspファイルをデコード(読み込み)します。

  2. jspにpageEncoding指定が無くcontentType指定(charset指定)が記述されている場合、そのエンコーディングでjspファイルをデコード(読み込み)します。

  3. JSP2.0の仕様でjspのエンコーディングをweb.xmlに指定できます。contentType指定(charset指定)が無い場合、web.xmlで指定したエンコーディングが適用されます。
    ※web.xmlへの設定例
    <jsp-config>
     <jsp-property-group>
      <uri-pattern>/jsp/*</uri-pattern>
      <page-encoding>Shift_JIS</page-encoding>
     </jsp-property-group>
    </jsp-config>
    

  4. pageEncoding指定、contentType指定が共に無い、web.xmlの指定も無い場合、otxadminコマンドにてデフォルトのエンコーディングを指定することができます。(要ドメイン再起動)
    otxadmin> set server.web-container.property.default-encoding=Shift_JIS
    
  5. 上記のいずれの指定も無い場合、jspファイルはデフォルトのエンコーディング"ISO-8859-1"でデコード(読み込み)されます。
    ※default-web.xmlのjavaEncodingはjsp->servletで変換したservletのjavaファイルをエンコード(出力)する際のエンコーディング指定します。

※実際のファイルの文字コードが、複数あり、個別のページでエンコーディングを指定している場合、priorityJspInEncodingを指定して特定の文字コードでエンコードするように設定すると、一部のページで文字化けが発生します。この場合は、該当のページのファイルの文字コード修正してください。

04. jspファイルのレスポンス

出力するレスポンスデータはどのエンコーディングエンコード(出力)するかは通常、以下の処理で決定されます。(ここで決定されたエンコーディングはレスポンスのヘッダ情報(Content-Typeのcharset)と出力する際OutputStreamに適用されます)

  1. jspにcontentType指定(charset指定)が記述されている場合、そのエンコーディングでレスポンスデータをエンコード(出力)します。

  2. JSP2.0の仕様でjspのエンコーディングをweb.xmlに指定できます。contentType指定(charset指定)が無い場合、web.xmlで指定したエンコーディングが適用されます。

    ※web.xmlへの設定例
    <jsp-config>
     <jsp-property-group>
      <uri-pattern>/jsp/*</uri-pattern>
      <page-encoding>Shift_JIS</page-encoding>
     </jsp-property-group>
    </jsp-config>
    

  3. contentType指定、web.xmlの指定共に無い場合、otxadminコマンドにてデフォルトのエンコーディングを指定することができます。(要ドメイン再起動)

    otxadmin> set server.web-container.property.default-encoding=Shift_JIS
    
  4. 上記のいずれの指定も無い場合、jspのレスポンスはデフォルトのエンコーディング"ISO-8859-1"でエンコード出力されます。

    ※1 この機能の指定方法は2パターンあります、全Webアプリケーション共通の指定と、Webアプリケーション毎に指定するものです。それぞれdomain.xmlのweb-container要素のpropertyとwarファイルにアーカイブするnec-web.xmlに定義されます。

    全アプリケーション共通の設定、Webアプリケーション毎の設定の両方が指定された場合、Webアプリケーション毎の設定が優先されます。nec-web.xmlに指定する場合は、エンコーディングを1つ設定する指定か、localeとエンコーディングをマッピングさせてエンコーディングを決定する指定の2パターンを可能とします。両方が指定された場合、localeとエンコーディングのマッピング指定が優先されます。以下、各設定例を記述します。

    =====設定例=====
    1. レスポンスエンコーディングの優先設定
      • Webアプリケーション毎に有効なLocaleに対応したエンコーディング指定のnec-web.xmlへの記述(a1)
        例)<nec-web-app>
           <property name="priorityResponseEncoding-map:ja" value="EUC_JP" />
          </nec-web-app>

        ※ "priorityResponseEncoding"に"-map"を付加し、":"で区切ってLocaleを記述します LocaleはHttpResponseのgetLocale()で取得できる文字列と同じである必要があります。

      • Webアプリケーション毎に有効なnec-web.xmlへの記述 (a2)
        例)<nec-web-app>
           <property name="priorityResponseEncoding" value="EUC_JP" />
          </nec-web-app>

      • 全Webアプリケーションに有効なdomain.xmlへの指定 (b)
        例) otxadmin> set server.web-container.property.priority-response-encoding=EUC_JP
        ※要ドメイン再起動

    2. JSPファイル読み込みエンコーディングの優先指定
      • Webアプリケーション毎に有効なnec-web.xmlへの記述(c)
        例)<nec-web-app>
           <jsp-config />
            <property name="priorityJspInEncoding" value="EUC_JP" />
           </jsp-config>
          </nec-web-app>

      • 全Webアプリケーションに有効なdomain.xmlへの指定(d)
        例) otxadmin> set server.web-container.property.priority-jsp-in-encoding=EUC_JP
        ※要ドメイン再起動
    3. JSPファイル出力時エンコーディングの優先指定
      JSP出力時とはコンパイルしたjavaソースでHttpServletResponseにsetContentType()する際に指定する"charset=XXX"部分に相当します。
      • Webアプリケーション毎に有効なLocaleに対応したエンコーディング指定のnec-web.xmlへの記述(e1)
        例)<nec-web-app>
           <jsp-config />
            <property name="priorityJspOutEncoding-map:ja" value="EUC_JP" />
           </jsp-config>
          </nec-web-app>

        ※ "priorityJspOutEncoding"に"-map"を付加し、":"で区切ってLocaleを記述します。
        LocaleはHttpResponseのgetLocale()で取得できる文字列と同じである必要があります。

      • Webアプリケーション毎に有効なnec-web.xmlへの記述 (e2)
        例)<nec-web-app>
           <jsp-config />
            <property name="priorityJspOutEncoding" value="EUC_JP" />
           </jsp-config>
          </nec-web-app>

      • 全Webアプリケーションに有効なdomain.xmlへの指定 (f)
        例) otxadmin> set server.web-container.property.priority-jsp-out-encoding=EUC_JP
        ※要ドメイン再起動

Q7 Tomcatからの移行時にJSPのコンパイルエラーになるのですが、原因は何が考えられるでしょうか?

A7 Java 1.4 で記述されたJSPをJava 1.5のソースとしてコンパイルした際に、コンパイルエラーが発生します。WebOTX V8ではデフォルトでは、Java 5 (Java1.5)としてコンパイルするため、この問題が発生します。次の例のように、コンパイルする際に使用するJavaの バージョンを指定してください。<servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class>の定義に compilerTargetVM と compilerSourceVM のパラメータで 1.4 を指定する定義を追加し、ドメインを再起動してください。

対象ファイル:<WebOTXインストールディレクトリ>/domains/domain1/config/default-web.xml
<servlet>
 <servlet-name>jsp</servlet-name>
 <servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class>
 <init-param>
  <param-name>compilerTargetVM</param-name>
  <param-value>1.4</param-value>
 </init-param>
 <init-param>
  <param-name>compilerSourceVM</param-name>
  <param-value>1.4<param-value>
 </init-param>
</servlet>


エラー原因が上記ではない場合は、APでデータ型を明示的に指定することによりエラーを回避できる可能性があります。
AP修正例)
xxxxxxxx a = (xxxxxxxx)form.getViewList().get(idx);
              ↓
xxxxxxxx a = (xxxxxxxx)form.getViewList().get(idx.intValue());

Q8 Servletを実行する際にURLを"/<コンテキスト名>/servlet/サーブレットのクラス名"というように実行するとHTTP404エラーとなるのですが、設定により直接Servletを実行する方法はありますか?

A8 Tomcat4.1.12以降をベースとする WebOTX V6,V7 では、servlet-mapping の定義が無いサーブレットへのアクセスはセキュリティの観点からデフォルトでは無効になっています。また、WebOTX V8では、この機能がデフォルトで定義されていません。

WebOTX V6, V7, V8 で上記のアクセスを許可するにはアプリケーションのweb.xmlに以下の定義を追加してください(WebOTX V6, V7 であれば <WebOTXインストールディレクトリ>/domains/domain1/config/default-web.xmlにコメントアウトされた定義がありますので参考にしてください)。なお、<WebOTXインストールディレクトリ>/domains/domain1/config/default-web.xmlのコメントアウトされた定義を有効にしてもかまいませんが全てのアプリケーションに適用される事に注意してください。定義を変更・追加したらドメインを再起動してください。

対象ファイル:web.xml もしくは <WebOTXインストールディレクトリ>/domains/domain1/config/default-web.xml
<servlet>
 <servlet-name>invoker</servlet-name>
 <servlet-class>org.apache.catalina.servlets.InvokerServlet</servlet-class>
 <init-param>
  <param-name>debug</param-name>
  <param-value>0</param-value>
 </init-param>
 <load-on-startup>2</load-on-startup>
</servlet>


<servlet-mapping>
 <servlet-name>invoker</servlet-name>
 <url-pattern>/servlet/*</url-pattern>
</servlet-mapping>

[ 2.3. 移行作業 > 2.3.8.2. Tomcat 5.5と Tomcat 6.0の差異 ] も参考にしてください。


Q9 ServletのJavaプログラムから、ネットワークドライブにあるファイルを開きたいのですが、どのようにしたらよろしいでしょうか?

A9 ネットワークドライブは以下の条件で利用可能となります。
WebOTXがサービス起動の場合は、サービスのログオンユーザの設定と、共有フォルダへのログオンユーザのアクセス権が必要です。また、APでの共有フォルダの指定は、UNC表記(\\hostname\共有フォルダ名)で指定してください。
※ D:\xxxxx\xxxx の表記では、アクセスできません。

Q10 シンボリックリンクを使用したいのですが、どのようにしたらよろしいでしょうか?

A10 例) WebAPP1というWebアプリケーション内からリンクする例です

Q11 httpsの通信でCookieのセキュアオプションがついていないのですが、設定によりつけることはできますか?

A11 内蔵Webサーバを使用している場合はhttpsでの送受信時には自動的にsecure属性が付加されます。外部Webサーバを使用している場合は運用管理コマンドで下記を入力した後、ドメインを再起動することでsecure属性を付加することができます。

otxadmin>set server.http-service.http-listener.ajp-listener-1.security-enabled=True

また、以下の設定により、httpの通信でもsecure属性を付加させることができます。
設定内容:
nec-web.xmlに下記の記述を行い、Webアプリケーションを更新した後、アプリケーションを配備し直してください。
<session-properties>タグにpropertyを記述します。

<session-config>
 <session-properties>
  <property name="alwayCookieSecure" value="true"/>
 </session-properties>
</session-config>

Q12 Webサーバプラグインのログローテート機能を利用したいのですが、どのようにしたらよろしいでしょうか?

A12 以下の例を参考にファイルを編集し、Webサーバを再起動してください。

対象ファイル:<WebOTXインストールディレクトリ>/domains/domain1/config/WebCont/*.conf-auto

JkLogFile "D:/WebOTX/domains/domain1/logs/webcontainer/mod_jk-20.log"
                  ↓
JkLogFile "|D:/WebOTX/WebServer2/bin/rotatelogs.exe D:/WebOTX/domains/domain1/logs/webcontainer/mod_jk-20.log 86400"

一日(86400秒)毎にログローテートされます。
※ *.conf-autoファイルはデフォルト名のままである場合、ドメイン再起動で上書きされます。必要に応じてファイル名をリネームしてください。

詳細および、その他のWebサーバについては以下を参照してください。

2.6.2. Webアプリケーションの開発に関するQ&A

Q1 servletをコンパイルするときに、WebOTXではどのjarを利用するのでしょうか?

A1 ${AS_INSTALL}/lib/javaee.jar を利用してください。

Q2 Webアプリケーションを自動的に配備するには、どうすれば良いのでしょうか?

A2 Tomcatでは、webappsディレクトリにWARファイルを置くと自動的に配備されますが、WebOTXでは ${ INSTANCE_ROOT}/autodeploy ディレクトリにWARファイルを格納することで、自動的に配備できます。

Q3 context.xml にWebアプリケーションが利用するパラメータを記述しているのですが、WebOTX ではどこに記述すればよいのでしょうか?

A3 WebOTX には context.xml は存在しません。web.xml に記述してください。

2.6.3. 環境設定、チューニングに関するQ&A

Q1 WebOTXでJavaVMのメモリ量を指定するには、どうすれば良いのでしょうか?

A1 Tomcatでは、起動用のファイルでJavaVMのメモリ量を指定しますが、WebOTXでは運用管理コマンド(otxadmin) で指定します。

【割り当てメモリの最大値を 640 MB にする例】

otxadmin> create-jvm-options --user <ユーザ名> --password <パスワード> --host <ホスト名> --port <管理ポート> -Xmx640m:

詳細については、WebOTXマニュアル [ 高度な管理と運用サイクルガイド > 2. チューニング > 2.1. APサーバ > 2.1.2. リソースチューニング > 2.1.2.1. ドメインエージェントプロセスのヒープサイズの見直し ] をご覧ください。

Q2 Apacheと連携するときの同時接続(スレッド)数の設定は、どうすれば良いのでしょうか?

A2 Tomcatでは server.xml を編集して設定しますが、WebOTXでは運用管理コマンド(otxadmin) で指定します。

【同時に処理できるリクエストの数を拡大する例】

otxadmin> set --user <ユーザ名> --password <パスワード> --host <ホスト名> --port <管理ポート> server.http-service.http-listener.<リスナID>.max-processors=<最大数>

詳細については、WebOTXマニュアル [ 高度な管理と運用サイクルガイド > 2. チューニング > 2.3. Webコンテナ > 2.3.1. プロセッサ数 > 2.3.1.1. 最大プロセッサ数 ] をご覧ください。

Q3 JDBCデータソースの設定は、どうすれば良いのでしょうか?

A3 Tomcatでは server.xml を編集して設定しますが、WebOTXでの設定方法は本資料の 2.3.4. JDBCデータソースの設定をご覧ください。

Q4 1台のサーバで複数のWebコンテナを起動するには、どうすれば良いのでしょうか?

A4 Tomcatでは、Tomcatのディレクトリをコピーして、同じマシンで複数のTomcatを起動しますが、WebOTXでは複数のドメインを作成することで複数のWebコンテナを起動することができます。

Q5 Tomcatからの移行時に対応する環境設定を教えてください。

A5 環境設定の対応は以下となっています。

※環境変数の詳細については、WebOTXマニュアル [ ドメイン構築・基本設定ガイド > 2. 環境設定 > 2.1. システム環境変数 ] をご覧ください。

2.7. 注意事項

2.7.1. JDKに関する注意事項

Java Development Kit(JDK)を変更する場合は、WebOTXが動作保証するJDKを使用して下さい。また、WebアプリケーションやWebアプリケーションが依存するライブラリが、特定のJDKに依存しないか動作確認を行ってください。

2.7.2. Tomcatとの差異

表2.7.2-1
機能比較
■YES、□NO
Tomcat6.x WebOTX V8.4
仕様
Java Servlet 2.5 2.5
JavaServer Pages 2.1 2.1
JSF - 1.2
JSTL - 1.2
Java EE 5 対応
パフォーマンス/チューニング
リクエスト処理スレッドの動的制御
NewI/O を利用した高速なリクエスト処理 ■(独自実装) ■(Grizzlyを使用)
統計情報の提供(詳細は別途)
プロファイラの提供
スケーラビリティ
ハードウェアを使用した負荷分散
ソフトウェアを使用した負荷分散
セッションのレプリケーション ■(file, database, TCP) ■(JNDI)
仮想ホストのサポート
アドバンスドモードのサポート
セキュリティ
SSL(通信)
SSL(証明書の管理と運用)
認証
- BASIC認証
- フォームベース
- クライアント証明書
- DIGEST認証
レルム
- JDBCレルム ■(JDBCRealm)
- DataSourceレルム ■(JDBCRealmで同じ事を実現可能)
- JNDIレルム □(LDAPRealmで同じ事を実現可能)
- Memoryレルム ■(fileRealm)
- JAASレルム
- LDAPレルム
ログ
ローテーション ■(サイズ、時間、個数を指定可能) ■(log4j を採用しているので柔軟なカスタマイズが可能)
HTTPのログ採取 ■(アクセスログにて細かく指定可能)
Webアプリケーションの実行
クラスローダの優先順位変更
ユーザ独自のクラスローダ利用
外部Webサーバ連携時のコンテキスト動的反映 ■(ON/OFF/一回のみ実行を指定可能)
国際化
リクエストデータの文字エンコーディング
- ServletRequest.setCharacterEncoding()
- 設定ファイルでの指定
レスポンスデータの文字エンコーディング
- ServletResponse.setContentType()
- JSPでの pageディレクティブ(contentType)
- 優先指定(上記の指摘より優先する)
- JSP
- 優先指定(全ての指摘より優先する)
- Servlet & JSP
JSPの文字エンコーディング
- pageディレクティブ(pageEncoding)
- 設定ファイルでのデフォルト値の指定
- 優先指定(上記の指摘より優先する)
運用管理(コンテナ)
初期設定ツール
外部Webサーバとの連携設定 □(手動で設定)
リモートからの起動/停止
運用管理(Webアプリケーション)
配備/配備解除/起動/停止などの運用
- ツールによる配備/配備解除
- コマンドによる配備/配備解除
- autodeploy
アクセス中クライアントの情報表示
任意のコンテキストで配備 ■(独自の配備記述子で指定)
コンフィグレーション
コネクタ(共通)
- allowTrace
- emptySessionPath
- enableLookups
- maxPostSize
- maxSavePostSize
- protocol
- proxyName
- proxyPort
- redirectPort
- SSLEnabled
- scheme
- secure
- URIEncoding
- useBodyEncodingForURI
- xpoweredBy
コネクタ(HTTP)
- acceptCount
- address
- bufferSize
- compressableMimeType
- compression
- connectionLinger
- connectionTimeout
- executor
- keepAliveTimeout
- disableUploadTimeout
- maxHttpHeaderSize
- maxKeepAliveRequests
- maxThreads
- noCompressionUserAgents
- port
- restrictedUserAgents
- server
- socketBuffer
- tcpNoDelay
- threadPriority
コネクタ(SSL)
- algorithm
- clientAuth
- keystoreFile
- keystorePass
- keystoreType
- keystoreProvider
- sslProtocol
- ciphers
- keyAlias
- truststoreFile
- truststorePass
- truststoreType
- truststoreProvider
コネクタ(AJP-共通)
- allowTrace
- emptySessionPath
- enableLookups
- maxPostSize
- maxSavePostSize
- protocol
- proxyName
- proxyPort
- redirectPort
- request.registerRequests
- scheme
- secure
- URIEncoding
- useBodyEncodingForURI
- useIPVHosts
- xpoweredBy
コネクタ(AJP-Standard)
- address
- backlog
- bufferSize
- connectionTimeout
- executor
- keepAliveTimeout
- maxThreads
- packetSize
- port
- request.secret
- request.shutdownEnabled
- request.useSecret
- tcpNoDelay
- tomcatAuthentication ■ (otxAuthentication に対応)
コンテキスト(共通)
- backgroundProcessorDelay
- className
- cookies
- crossContext
- docBase
- override
- privileged
- path
- reloadable
- wrapperClass
コンテキスト(Standard)
- allowLinking
- antiJARLocking
- antiResourceLocking
- cacheMaxSize
- cacheTTL
- cachingAllowed
- caseSensitive
- processTlds
- swallowOutput
- tldNamespaceAware
- tldValidation
- unloadDelay
- unpackWAR
- useNaming
- workDir
Manager(共通)
- className
- distributable
Manager(Standard)
- algorithm
- entropy
- maxActiveSessions
- maxInactiveInterval
- pathname
- processExpiresFrequency
- sessionIdLength
Realm(共通)
- classname
Realm(JDBC)
- connectionName
- connectionPassword
- connectionURL
- digest
- digestEncoding
- driverName
- roleNameCol
- userCredCol
- userNameCol
- userRoleTable
- userTable
Realm(DataSource)
- dataSourceName □(JDBCRealmで同じ事を実現可能)
- digest □(JDBCRealmで同じ事を実現可能)
- localDataSource □(JDBCRealmで同じ事を実現可能)
- roleNameCol □(JDBCRealmで同じ事を実現可能)
- userCredCol □(JDBCRealmで同じ事を実現可能)
- userNameCol □(JDBCRealmで同じ事を実現可能)
- userRoleTable □(JDBCRealmで同じ事を実現可能)
- userTable □(JDBCRealmで同じ事を実現可能)
Realm(JNDI)
- alternateURL □(LDAPRealmで同じ事を実現可能)
- authentication □(LDAPRealmで同じ事を実現可能)
- connectionName □(LDAPRealmで同じ事を実現可能)
- connectionPassword □(LDAPRealmで同じ事を実現可能)
- connectionURL □(LDAPRealmで同じ事を実現可能)
- contextFactory □(LDAPRealmで同じ事を実現可能)
- derefAliases □(LDAPRealmで同じ事を実現可能)
- digest □(LDAPRealmで同じ事を実現可能)
- protocol □(LDAPRealmで同じ事を実現可能)
- roleBase □(LDAPRealmで同じ事を実現可能)
- roleName □(LDAPRealmで同じ事を実現可能)
- roleSearch □(LDAPRealmで同じ事を実現可能)
- roleSubtree □(LDAPRealmで同じ事を実現可能)
- userBase □(LDAPRealmで同じ事を実現可能)
- userPassword □(LDAPRealmで同じ事を実現可能)
- userPattern □(LDAPRealmで同じ事を実現可能)
- userRoleName □(LDAPRealmで同じ事を実現可能)
- userSearch □(LDAPRealmで同じ事を実現可能)
- userSubtree □(LDAPRealmで同じ事を実現可能)
Realm(Memory)
- digest ■(fileRealm参照)
- pathname
システムプロパティ(EL)
- org.apache.el.parser.COERCE_TO_ZERO
システムプロパティ(Jasper)
- org.apache.jasper.compiler. Generator.VAR_EXPRESSIONFACTORY
- org.apache.jasper.compiler.Generator.VAR_INSTANCEMANAGER
- org.apache.jasper.compiler.Parser.STRICT_QUOTE_ESCAPING
- org.apache.jasper.runtime.BodyContentImpl.LIMIT_BUFFER
- org.apache.jasper.runtime.JspFactoryImpl.USE_POOL
- org.apache.jasper.runtime. JspFactoryImpl.POOL_SIZE
- org.apache.jasper.Constants.JSP_SERVLET_BASE
- org.apache.jasper.Constants.SERVICE_METHOD_NAME
- org.apache.jasper.Constants.SERVLET_CLASSPATH
- org.apache.jasper.Constants.JSP_FILE
- org.apache.jasper.Constants.PRECOMPILE
- org.apache.jasper.Constants.JSP_PACKAGE_NAME
- org.apache.jasper.Constants.TAG_FILE_PACKAGE_NAME
- org.apache.jasper.Constants.ALT_DD_ATTR
- org.apache.jasper.Constants.TEMP_VARIABLE_NAME_PREFIX
- org.apache.jasper.Constants.USE_INSTANCE_MANAGER_FOR_TAGS
システムプロパティ(Security)
- org.apache.catalina.connector.RECYCLE_FACADES
- org.apache.catalina.connector.CoyoteAdapter.ALLOW_BACKSLASH
- org.apache.tomcat.util.buf.UDecoder.ALLOW_ENCODED_SLASH
- org.apache.coyote.USE_CUSTOM_STATUS_MSG_IN_HEADER
統計情報の詳細
HTTPリスナ
- 受信バイト数
- 送信バイト数
- オープンコネクション数
- オープンコネクションの最大数
- 現在のスレッド数
- 現在のビジースレッド数
- 最大スレッド数
- 最大スペアスレッド数
- 最小スレッド数
- リクエスト回数
- エラーリクエスト回数
- 200番台のレスポンス数
- 300番台のレスポンス数
- 400番台のレスポンス数
- 500番台のレスポンス数
- 200-500番台のレスポンス数
- 200 のレスポンス数
- 302 のレスポンス数
- 304 のレスポンス数
- 400 のレスポンス数
- 401 のレスポンス数
- 403 のレスポンス数
- 404 のレスポンス数
- 503 のレスポンス数
- 最大レスポンス時間
- 累積処理時間
Webモジュール
- アクティブなセッション数
- リクエスト回数
- エラーリクエスト回数
- アクティブなセッションの最大数
- 有効切れセッションの累計数
- JSPのロード数
- JSPのエラー回数
- JSPのリロード回数
- 拒否されたセッションの累計数
- 生成されたセッションの累計数
- トータルリクエスト処理時間
- 最大処理時間
- 最小処理時間
- リクエスト処理時間
- サーブレット累計処理時間
サーブレット
- リクエスト回数
- エラーリクエスト回数
- 最大処理時間
- 最小処理時間
- トータルリクエスト処理時間
- サービス実行最大時間

2.7.3. Tomcatポート番号との対応表

Tomcat 6.x、WebOTX V5、V6、V7、V8で使用するポート番号の一覧を下記に示します。

表2.7.3-1
Tomcat 6.x WebOTX V5.x WebOTX V6.x WebOTX V7.x WebOTX V8.x
HTTP/1.1 8080 8080 80 80 80
AJP/1.3 8009 8009 8009 8009 8099
運用管理コンソール 8080 8080 4848 4848 5858
HTTPS 8443 8443 443 443 443
終了待ち受けポート 8005 8005 - - -
IIOPリスナ(アドバンスドモード使用時) - - 5151 5151 5151
運用管理ポート - - 6202 6202 6202