java - 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 指的是什么?我猜它也是与我的战争文件捆绑在一起的类的一个版本?它看起来不像来自应用程序服务器。
解决方案
bundleresource
URL 来自 OSGi 类加载器。对于 WebSphere,这通常意味着它们是由服务器提供的,因为基本上整个服务器运行时都在 OSGi 中运行。265.fwk-1702970980
是包的内部名称 - 如果您使用 OSGi 控制台列出包,则 JAX-RS API 包可能是包号 265。
推荐阅读
- python - 检查是一个字符串是二进制
- javascript - 如何删除特定列中的行边框?
- sql-server - 如何使用 ssis 包将 postgres 布尔值加载到 sql server
- c# - 在终结器中处置的资源与在处置中释放的资源有什么区别
- angularjs - 使用 ng-repeat 时出现未定义的常量错误
- c - 套接字服务器,在特定的网络接口地址上工作
- google-sheets - 自动隐藏/取消隐藏行 Google 电子表格
- angular - “Angular 5+ 引导日期和时间选择器” - 选择完成隐藏它
- ios - CollectionviewCell 单元格层不会触发 didSelectItemAt
- git - Jenkins 克隆因 AWS 代码提交存储库而失败(状态代码 143)