Jakarta ee 从WAR内部EAR引用Weblogic中的共享JavaEE库

Jakarta ee 从WAR内部EAR引用Weblogic中的共享JavaEE库,jakarta-ee,deployment,weblogic,shared-libraries,Jakarta Ee,Deployment,Weblogic,Shared Libraries,我们有许多应用程序需要引用Oracle和WebLogic上我们自己的共享JavaEE库。它们的结构如下: 我们自己的共享库“framework”与所有非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: &

我们有许多应用程序需要引用Oracle和WebLogic上我们自己的共享JavaEE库。它们的结构如下:

我们自己的共享库“framework”与所有非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
清单版本:1.0
创建人:ApacheMaven 3.0.4
建造人:lajokon
构建Jdk:1.7.0_07
实施供应商:
实现标题:框架库
实施版本:15.0.2
实施供应商Id:org
规格供应商:
规范标题:框架库
规格版本:15.0.2
扩展名:框架库
所有JAR:s都在APP-INF/lib中

每个应用程序都打包在自己的EAR中。 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>

10.3.6
应用程序名称
adf.oracle.domain.webapp
1
错误的
jsf
2
错误的
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>
<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>

应用程序名称
app-name.war
/应用程序名称
EAR weblogic-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>
<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>

adf.oracle.domain
1
错误的
一致性
3.7
错误的
框架库
15
错误的
默认情况下会部署所有库,或者在WL中正确部署。应用程序EAR也是如此


但是,当我访问应用程序时,我会收到运行时错误,说它无法加载WAR:s WEB-INF/classes dir!中的资源


但是,我可以从日志输出中看到,它从框架EAR加载资源。为什么WL似乎不关心我的WAR的内容?

从WEB-INF/classes目录中引用的类可能是从共享EAR的APP-INF/lib中获取的吗?如果有的话。看一看,也许吧,但是APP-INF/lib和WEB-INF/classes中都没有出现重复的类(应用程序类通常扩展框架包中的类),如果这是你的意思……“当我访问应用程序时,我收到运行时错误,说它无法加载WAR中的资源:WEB-INF/classes dir”-您能提供完整的错误详细信息吗?