首页 > 解决方案 > Websphere 9 中 Java ear-file 的 Java.lang.LinkageError

问题描述

当我尝试调用我的一个 Web 服务时,我在 Websphere 9 中为部署为 EAR 文件的 Java 应用程序收到此错误。

Caused by: java.lang.LinkageError: ClassCastException: attempting to castbundleresource://265.fwk-1702970980/javax/ws/rs/client/ClientBuilder.class to wsjar:file:/opt/app/was/WebSphere/AppServer/profiles/prctstwas01/installedApps/lsp7288cNode01Cell/OurApplicaton.ear/OurApplicationWeb.war/WEB-INF/lib/integration-commons

我知道这个错误是什么,我通过将我的 ear 文件中的 war 文件的类加载器设置为 parent 来解决它,如果有人搜索这个错误想知道如何解决它。但是我不知道65.fwk-1702970980/javax/ws/rs/client/ClientBuilder.class类的第一个版本来自哪里。

有谁知道捆绑资源://265.fwk-1702970980 指的是什么?我猜它也是与我的战争文件捆绑在一起的类的一个版本?它看起来不像来自应用程序服务器。

标签: javawebspherewebsphere-9

解决方案


bundleresourceURL 来自 OSGi 类加载器。对于 WebSphere,这通常意味着它们是由服务器提供的,因为基本上整个服务器运行时都在 OSGi 中运行。265.fwk-1702970980是包的内部名称 - 如果您使用 OSGi 控制台列出包,则 JAX-RS API 包可能是包号 265。


推荐阅读