java - Webapp 部署失败,接口从类加载器异常中不可见
问题描述
我有一个新的 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 spring:5.0.6 hibernate: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 中添加以下内容来解决这个问题:
<wls:package-name>org.hibernate.*</wls:package-name>
推荐阅读
- python - 在odoo中安装模块时如何将货币设置为活动?
- docker - 如何使用 GITHUB_TOKEN 密钥和 Maven Jib 插件将图像推送到 GitHub 包?
- javascript - 如何通过 Javascript 对象中的连续属性获取 MIN 和 MAX 间隔?
- python - 将数据从 List 保存到 Dataframe Python
- python - 我的日期有问题,检查消息有问题
- reporting-services - 报表生成器无法将文本转换为 int 错误
- typescript - Arg 用 Typescript 中的默认泛型类型替换 seltf
- c - 可能的?C中没有成员的Typedef枚举,在另一个文件中添加成员
- firebase - Firebase、Flutter - 读取、检索过滤后的数据
- html - jinja2.exceptions.UndefinedError - 试图达到特定值