配備でエラーが発生する場合の対処

Webアプリケーションの配備でエラーが発生する場合、WebアプリケーションのWEB-INF/lib配下の ライブラリ(jar)が、WebOTXのライブラリと重複していることが原因と考えられますので、 1〜5に示す順番で対策を実施してください。

  1. nec-web.xmlでのdelegate指定
    nec-web.xmlでdelegateをtrueとする。delegateをtrueとすることにより、上位のクラスローダで ロードされるクラスが優先され、ライブラリの重複による問題が回避できます。nec-web.xmlは、 配備時に自動生成されますが、配備前にWebアプリケーションのWEB-INFディレクトリ配下に 作成してください。作成時には、配備されたWebアプリケーションのnec-web.xmlを参考にしてください。
    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="true"/>
    </nec-web-app>
  2. commons-logging*.jarをWebアプリケーションから取り出す
    nec-web.xmlの定義変更だけでは問題が解決できない場合、commons-logging*.jarがWebアプリケーション のWEB-INF/libに格納されている場合には、commons-logging*.jarを取り除いてください。 commons-logging*.jarはWebOTXのライブラリに含まれています。

  3. xml-apis.jarをWebアプリケーションから取り出す
    nec-web.xmlの定義変更だけでは問題が解決できない場合、xml-apis.jarがWebアプリケーション のWEB-INF/libに格納されている場合には、xml-apis.jarを取り除いてください。xml-apis.jarはWebOTXの ライブラリに含まれています。

  4. javaxのクラスでエラーが発生した場合 Webアプリケーション内のjavaxクラスは、Webアプリケーションレベルではロードされません。 次の対処を行ってください。

    • nec-web.xmlにオーバライドを指定する
      nec-web.xmlに次のoverrideablejavaxpackagesを指定します。

      <?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等も 対象となります。個別に指定する必要はありません。

  5. jarファイルを取り除いた、もしくは移動した後にクラスの参照に失敗するようになった場合
    上位のクラスローダでロードされているクラスから、Webアプリケーション内のクラスを参照しようと してエラーになっていると考えられます。
    参照が失敗するようになったクラスを含むjarファイルを ${AS_INSTALL}/lib 配下に 格納してください。


関連情報