java - 升级 Axis2 库后出现 ClassNotFoundException:com.sun.ws.rs.ext.RuntimeDelegateImpl
问题描述
最近我们在项目中升级了axis2库。我们已将其从 1.6.2 升级到 1.7.9,从那时起我们面临以下问题。
java.lang.RuntimeException: java.lang.ClassNotFoundException: com.sun.ws.rs.ext.RuntimeDelegateImpl
at javax.ws.rs.ext.RuntimeDelegate.findDelegate(RuntimeDelegate.java:122)
at javax.ws.rs.ext.RuntimeDelegate.getInstance(RuntimeDelegate.java:91)
at javax.ws.rs.core.UriBuilder.newInstance(UriBuilder.java:69)
at javax.ws.rs.core.UriBuilder.fromUri(UriBuilder.java:80)
at javax.ws.rs.core.UriBuilder.fromUri(UriBuilder.java:99)
at org.glassfish.jersey.client.JerseyWebTarget.<init>(JerseyWebTarget.java:71)
at org.glassfish.jersey.client.JerseyClient.target(JerseyClient.java:290)
at org.glassfish.jersey.client.JerseyClient.target(JerseyClient.java:76)
at com.xyz.MyClass.method1(MyClass.java:55)
如您所见,我们的 MyClass.method1() 方法调用 JerseyClient.target(),它在 jersey-client 库(版本 2.23.1)中,它在内部调用 javax.ws.rs-api 库的方法((版本 2.0.1) .
该库的 RuntimeDelegate 类试图在运行时加载 RuntimeDelegateImpl,它是 jersey-bundle。但我不知道它与 Axis2 库有什么关系。你能帮我找出这个问题的根本原因吗?
我在 SO 中发现了类似的问题,但没有提到实际的根本原因。
链接:将 Axis2 Web 服务从版本 1.5.6 更新到 1.6.3 时出错
谢谢
解决方案
对于 maven 项目,在依赖项下的 pom.xml 文件中为我添加以下依赖项已解决的问题。
<dependency>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-client</artifactId>
<version>1.12</version>
</dependency>
推荐阅读
- go - Ref“不是类型” - 将类型存储在结构中
- json - 在 Excel 中转换(16 位)时间戳
- android - AAPT2 aapt2-3.2.1-4818971-windows 守护进程
- android - Android 无效颜色状态列表标签渐变
- css - CSS Psuedo ::after 未在 Firefox 更新 63 中应用
- wpf - 在 Catel MVVM 中添加新项目时的上下文
- blockchain - 如何使用带有 web3 v1 的 ERC20 代币的支付功能
- python - 从没有标签的 xml imdb 响应中获取信息
- jquery - 如何使背景视频适合所有屏幕尺寸
- java - 如何将位于本地或分布式文件系统中的 .class 文件读取到 Java 中的 java.lang.Class 对象?