Websphere 8.0.0.11

休眠4.2.21。最终

我发现了很多与此问题有关的问题,但没有一个对我有用。

如果我在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

最佳答案

在尝试了几乎所有东西之后,我在S.O.没有成功,我决定将Hibernate降级到4.1.12.Final版本。这是与Websphere 8.x兼容的最高4.x版本。

10-08 09:40
查看更多