首页 > 解决方案 > 升级 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 时出错

谢谢

标签: javajerseyaxis2classnotfoundexception

解决方案


对于 maven 项目,在依赖项下的 pom.xml 文件中为我添加以下依赖项已解决的问题。

    <dependency>
        <groupId>com.sun.jersey</groupId>
        <artifactId>jersey-client</artifactId>
        <version>1.12</version>
     </dependency>

推荐阅读