ソフトウェア条件

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

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

詳細については、各インストールガイド( WindowsLinuxHP-UX )の[ソフトウェア要件]をご覧ください。

対象プラットフォーム

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

詳細については、各インストールガイド( WindowsLinuxHP-UX )の[オペレーティング・システム]をご覧ください。

Webサーバ

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

詳細については、各インストールガイド( WindowsLinuxHP-UX )の[Webサーバ]をご覧ください。

データベース

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

詳細については、各インストールガイド( WindowsLinuxHP-UX )の[データベース・サーバ]をご覧ください。

同梱するライブラリ

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

表2.2.4-1
名称 V10.2
Java Beans Activation Framework (JAF) 1.1
JavaMail 1.5
JAXP 同梱なし
Ant 1.9.9
Jakarta Commons BeanUtiles (*1) 同梱なし
Jakarta Commons Codec (*1) 同梱なし
Jakarta Commons Collections (*1) 同梱なし
Jakarta Commons Digester (*1) 同梱なし
Jakarta Commons Discovery (*1) 同梱なし
Jakarta Commons EL (*1) 同梱なし
Jakarta Commons FileUpload (*1) 同梱なし
Jakarta Commons Launcher (*1) 同梱なし
Jakarta Commons Logging (*1) 同梱なし
Jakarta Commons Modeler (*1) 同梱なし
Jakarta Regexp 同梱なし
Log4j 2.8.2(*1)
XML Xerces 2 Java Parser 同梱なし(*2)
XML Xalan Java 2 同梱なし(*2)
The Web Services Description Language
for Java Toolkit (WSDL4J)
同梱なし

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

*2:V9以降は、XercesおよびXalanを同梱しなくなりました。

JAXPを使用するアプリケーションでJAXP実装のライブラリを含まない場合、デフォルトではJDKに含まれるJAXP実装(com.sun.org.apache.〜 で始まるクラス)が使用されます。
(V8までは、WebOTXに同梱のXerces、Xalanが使用されていました。)

一方、JDKに含まれるJAXP実装クラスのパッケージは、アクセスが制限されています。(Memo参照)
そのため、 ${INSTANCE_ROOT}/config/server.policy を編集して、JAXPを使用するアプリケーションのコードに対して、JDKに含まれるJAXP実装のパッケージへのアクセス権を付与する必要があります。
※ アプリケーション内(例: WARファイル内のWEB-INF/lib)にXerces、Xalanを含む場合は、そちらのJAXP実装が使われるため、アクセス権の付与は必要ありません。

server.policyに追加する権限の例は以下の通りです。

grant codeBase "file:${com.nec.webotx.instanceRoot}/applications/<アプリケーション名>/-" {
    permission java.lang.RuntimePermission "accessClassInPackage.*";
};

grant codeBase "file:${com.nec.webotx.instanceRoot}/generated/-" {
    permission java.lang.RuntimePermission "accessClassInPackage.*";
};

上記の例では、アクセス制限のある全てのパッケージへのアクセス権を付与していますが、 "accessClassInPackage.com.sun.org.apache.xerces.internal.*" や "accessClassInPackage.com.sun.org.apache.xalan.internal.*" のように指定することで、使用するパッケージへのアクセス権のみを付与することも可能です。
その場合は、使用する機能に合わせてパッケージ名を指定した権限を追加してください。

Memo
${JRE_HOME}/lib/security/java.security の package.access に指定されたパッケージおよびそのサブパッケージにアクセスするコードには、 java.lang.RuntimePermission "accessClassInPackage.{パッケージ名}" を与える必要があります。
権限がない場合、該当するパッケージのクラスのロードに失敗します。

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

クラスのロードについて

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

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

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

Webアプリケーションで使用するライブラリはWEB-IN/lib に配置します。複数のアプリケーションでライブラリを共有したい場合はWebOTX/libやdomain1/libに配置します

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

domain1/lib/ext
  ↑
WebOTX/modules(Webアプリケーションで使用するjarファイルはここには入れないで下さい)
  ↑
WebOTX/lib, domain1/lib
  ↑
classpath
  ↑
WEB-INF/lib

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

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

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

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

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

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


クラスローダの詳細は、[ 配備 > クラスローダ ] をご参照ください。