【问题标题】:Webapp deployment fails with interface not visible from class loader exceptionWebapp 部署失败,接口从类加载器异常中不可见
【发布时间】:2019-03-13 11:24:28
【问题描述】:

我有一个新的 weblogic 12c 服务器,我试图在其中部署一个基于 spring hibernate 的 Webapp,但部署失败并出现以下异常:

<Mar 13, 2019 12:58:51,096 PM IST> <Error> <Deployer> <BEA-149265> <Failure occurred in the execution of deployment request with ID "346350192983496" for task "0" on [partition-name: DOMAIN]. Error is: "weblogic.application.ModuleException: java.lang.IllegalArgumentException: interface javax.persistence.EntityManagerFactory is not visible from class loader"
weblogic.application.ModuleException: java.lang.IllegalArgumentException: interface javax.persistence.EntityManagerFactory is not visible from class loader
        at weblogic.application.internal.ExtensibleModuleWrapper.prepare(ExtensibleModuleWrapper.java:114)
        at weblogic.application.internal.flow.ModuleListenerInvoker.prepare(ModuleListenerInvoker.java:100)
        at weblogic.application.internal.flow.ModuleStateDriver$1.next(ModuleStateDriver.java:192)
        at weblogic.application.internal.flow.ModuleStateDriver$1.next(ModuleStateDriver.java:187)
        at weblogic.application.utils.StateMachineDriver$ParallelChange.run(StateMachineDriver.java:83)
        Truncated. see log file for complete stacktrace
Caused By: java.lang.IllegalArgumentException: interface javax.persistence.EntityManagerFactory is not visible from class loader
        at java.lang.reflect.Proxy$ProxyClassFactory.apply(Proxy.java:581)
        at java.lang.reflect.Proxy$ProxyClassFactory.apply(Proxy.java:557)
        at java.lang.reflect.WeakCache$Factory.get(WeakCache.java:230)
        at java.lang.reflect.WeakCache.get(WeakCache.java:127)
        at java.lang.reflect.Proxy.getProxyClass0(Proxy.java:419)
        Truncated. see log file for complete stacktrace

我正在使用基于 java 8 的 Web 应用程序,以下是不同解决方案/库的版本: Weblogic:12.2.1.3.0 春天:5.0.6 休眠:5.1.0

weblogic.xml:

<weblogic-web-app xmlns:wls="http://xmlns.oracle.com/weblogic/weblogic-web-app"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/ejb-jar_3_0.xsd http://xmlns.oracle.com/weblogic/weblogic-web-app http://xmlns.oracle.com/weblogic/weblogic-web-app/1.4/weblogic-web-app.xsd">

<context-root>/iamws/adc</context-root>
<wls:container-descriptor>
    <wls:prefer-web-inf-classes>false</wls:prefer-web-inf-classes>
    <wls:prefer-application-packages>
        <wls:package-name>org.springframework.*</wls:package-name>
        <wls:package-name>org.joda.*</wls:package-name>
        <wls:package-name>com.sun.activation.*</wls:package-name>
        <wls:package-name>javax.activation.*</wls:package-name>
        <wls:package-name>com.sun.mail.*</wls:package-name>
        <wls:package-name>javax.mail.*</wls:package-name>
        <wls:package-name>org.slf4j.*</wls:package-name>
        <wls:package-name>org.jboss.*</wls:package-name>
        <wls:package-name>org.apache.log4j.*</wls:package-name>
        <wls:package-name>javax.persistence.*</wls:package-name>
    </wls:prefer-application-packages>
</wls:container-descriptor>

</weblogic-web-app>

【问题讨论】:

  • 你有 weblogic.xml 吗?
  • 是的,我的战争中有 weblogic.xml,现在添加到问题中。
  • 在 $DOMAIN_HOME/lib 中添加 java.persistence-api-2.2 jar 解决了我的问题,但这对我来说似乎是一个 hack,还有其他建议吗?

标签: java spring hibernate web-applications weblogic12c


【解决方案1】:

我可以通过在 weblogic.xml 中添加以下内容来解决这个问题:

<wls:package-name>org.hibernate.*</wls:package-name>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-02-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-06
    • 2020-07-06
    相关资源
    最近更新 更多