WebOTX Manual V10.2 (第4版) 目次を表示 |
対象となるクラスが、そのクラスを参照しているクラスから参照できなくなっている
可能性があります。WebOTXでは、Jakarta Commonsのライブラリを”WebOTX/lib”に格納しています。
それらWebOTXで格納しているクラスはWebアプリケーションのクラスローダより上位のクラスローダで
ロードされており、WebアプリケーションのWEB-INF/libのクラスがクラスローダの上下関係で
参照できなくなっている可能性があります。
もしくは、対象のクラスが、javaxのパッケージの場合には、Servletの仕様により、WEB-INF配下から
読み込めないことがあります。これは、Servlet仕様での勧告(javaxなどのJ2SE,J2EEクラスを
WAR内のライブラリでオーバライトさせるべきでない、という仕様のためです。
WebOTXで同梱しているライブラリとクラスのロードについては [ 移行 > はじめに ] の [ 同梱するライブラリ ] と [ クラスのロードについて ] を参照してください。
クラスのロード処理を変更する
nec-web.xmlのdelegate指定を変更することにより、クラスのロード処理を変えて、アプリケーションの
動作を確認してください。
もしくは、WEB-INF/libにあるWebOTXで同梱されているライブラリ(例えばcommons-logging*.jar
など)を削除して、アプリケーションの動作を確認してください。
nec-web.xmlのdelegate指定の変更は、次章の[配備でエラーが発生
する]を参照してください。
javaxパッケージをWEB-INF配下から読み込み利用可能にする
javaxパッケージは、WEB-INF配下から読み込みません。
javaxパッケージを ${INSTANCE_ROOT}/lib 配下に移動するか、nec-web.xmlにoverrideablejavaxpackagesのを設定して利用可能にする必要があります。
nec-web.xml設定方法
<?xml version="1.0" encoding="UTF-8"?> <nec-web-app> : <class-loader delegate="false"> <property name="overrideablejavaxpackages" value="パッケージ名"/> </class-loader> :
パッケージ名はカンマ区切りで複数指定可能です。
※JavaVMシステムプロパティで、"com.nec.webotx.enterprise.overrideablejavaxpackages=パッケージ名"を設定をすることで全Webアプリケーションに対しての設定を行うこともできます。
設定方法の詳細については、[リファレンス > 設定 > Webコンテナ > Webコンテナ設定項目一覧 > JavaVMオプションで設定可能な項目一覧] を参照してください。
パッケージ名はカンマ区切りで複数指定可能です。
設定後はドメインを再起動してください。
overrideablejavaxpackagesで指定したパッケージはチェックするクラスがそのパッケージ名で
始まっていれば対象となります。
ですので、javax.xml.wsを指定していただければサブパッケージのjavax.xml.ws.handlerやjavax.xml.ws.handler.soap等も
対象となります。個別に指定する必要はありません。