【发布时间】:2016-08-01 09:45:10
【问题描述】:
Websphere 8.0.0.11
休眠 4.2.21.Final
我发现了很多关于这个问题的问题,但没有一个对我有用。
如果我在 Websphere 中部署应用程序,它可以正常工作。
然而,我们已经定义了一个包含所有第三方库(spring、hibernate、javassist 等)的共享库,以便我们的 WAR 更精简。
这样,在部署期间,我们将瘦 WAR 与那个 Websphere 共享库相关联。
关键是当我们以这种方式部署应用程序时,ClassCastException Hibernate exception _$$_javassist_856 cannot be cast to javassist.util.proxy.Proxy 被抛出。
我在 websphere 控制台中检查了加载的 jar,在类路径中只能看到一个 javassist jar (3.18.1-GA)。
为什么会发生这种情况?
更新
我也尝试过使用 PARENT_FIRST 和 PARENT_LAST 类加载。
更新 2
我刚刚发现 Websphere 正在加载它自己的 javassist jar:
URL location = ProxyFactory.class.getProtectionDomain().getCodeSource().getLocation();
logger.info("{}", location);
打印:file:/opt/IBM/WebSphere/AppServer/plugins/javassist.jar
【问题讨论】:
标签: java hibernate websphere websphere-8 javassist