1

Oracle と WebLogic 上の共有 Java EE ライブラリの両方を参照する必要があるアプリケーションが多数あります。それらは次のように構成されています。

当社独自の共有ライブラリ「フレームワーク」は、Oracle 以外のすべてのサードパーティ ライブラリ (JAR:s) とともに EAR 内に JAR としてパッケージ化され、共有ライブラリとして WebLogic にデプロイされます。これはマニフェストです:

Manifest-Version: 1.0
Created-By: Apache Maven 3.0.4
Built-By: lajokon
Build-Jdk: 1.7.0_07
Implementation-Vendor: <organization>
Implementation-Title: Framework Lib
Implementation-Version: 15.0.2
Implementation-Vendor-Id: org
Specification-Vendor: <organization>
Specification-Title: Framework Lib
Specification-Version: 15.0.2
Extension-Name: framework-lib

すべての JAR:s は APP-INF/lib にあります

アプリケーションはそれぞれ、独自の EAR 内の WAR にパッケージ化されています。WAR weblogic.xml:

<wls:weblogic-web-app>
    <wls:weblogic-version>10.3.6</wls:weblogic-version>
    <wls:context-root>app-name</wls:context-root>
    <wls:library-ref>
        <wls:library-name>adf.oracle.domain.webapp</wls:library-name>
        <wls:specification-version>1.0</wls:specification-version>
        <wls:exact-match>false</wls:exact-match>
    </wls:library-ref>
    <wls:library-ref>
        <wls:library-name>jsf</wls:library-name>
        <wls:specification-version>2.0</wls:specification-version>
        <wls:exact-match>false</wls:exact-match>
    </wls:library-ref>
</wls:weblogic-web-app>

EAR application.xml:

<application>
  <display-name>app-name</display-name>
  <module>
    <web>
      <web-uri>app-name.war</web-uri>
      <context-root>/app-name</context-root>
    </web>
  </module>
</application>

EAR weblogic-application.xml:

<weblogic-application>
    <library-ref>
        <library-name>adf.oracle.domain</library-name>
        <specification-version>1.0</specification-version>
        <exact-match>false</exact-match>
    </library-ref>
    <library-ref>
        <library-name>coherence</library-name>
        <specification-version>3.7</specification-version>
        <exact-match>false</exact-match>
    </library-ref>
    <library-ref>
        <library-name>framework-lib</library-name>
        <specification-version>15.0</specification-version>
        <exact-match>false</exact-match>
    </library-ref>
</weblogic-application>

すべてのライブラリは、デフォルトでデプロイされるか、WL で正しくデプロイされます。アプリケーション EAR も同様です。

しかし、アプリケーションにアクセスすると、WAR:s WEB-INF/classes dir!? にあるリソースを読み込めないというランタイム エラーが発生します。

ただし、ログ出力から、Framework EAR からリソースをロードしていることがわかります。WL が WAR の内容を気にしていないように見えるのはなぜですか?

4

0 に答える 0