Websphere 9 中的 Java.lang.LinkageError for Java 耳文件

Java.lang.LinkageError for Java ear-file in Websphere 9

当我尝试调用我的 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-file 中 war 文件的 classloader 设置为 parent 来解决它,如果有人搜索这个错误想知道如何解决这个问题。但是我不知道 class 65.fwk-1702970980/javax/ws/rs/client/ClientBuilder.class 的第一个版本来自哪里。

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

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