java 调用 CXF 报错 java.lang.NoSuchMethodError: javax.wsdl.xml.WSDLReader.readWSDL

项目中调用 CXF 报错

java.lang.NoSuchMethodError: javax.wsdl.xml.WSDLReader.readWSDL(Ljavax/wsdl/xml/WSDLLocator;Lorg/w3c/dom/Element;)Ljavax/wsdl/Definition;

找到报错代码 :

// CXF 方式调用

JaxWsDynamicClientFactory dcf = JaxWsDynamicClientFactory.newInstance();

Client client = dcf.createClient(WSDL);

简单查了下是依赖起了冲突 ,锁定问题依赖为 wsdl4j 。

在 lib 里依次排查 ,发现 axis 引入了一个 wsdl4j ,版本为 1.5.1 。这个版本的 wsdl4j 没有我们需要的方法 。

项目中同时还存在一个 1.6.2 的 wsdl4j ,这个才是我们需要的 。

那么问题就很简单了 ,我们修改 pom 文件依赖 ,将 

<dependency>

    <groupId>org.apache.axis</groupId>

    <artifactId>axis</artifactId>

    <version>1.4</version>

</dependency>

修改为 :

<dependency>

    <groupId>org.apache.axis</groupId>

    <artifactId>axis</artifactId>

    <version>1.4</version>

    <exclusions>

        <exclusion>

            <groupId>org.apache.axis</groupId>

            <artifactId>wsdl4j</artifactId>

        </exclusion>

    </exclusions>

</dependency>

剔除掉了 axis 自带的 wsdl4j ,问题解决 。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 这是一个 SOAP 错误,表示在程序运行时发生了空指针异常。这意味着您的程序尝试调用了一个 null 对象的方法或访问了一个 null 对象的属性,而该对象的实际值为 null。解决这个问题的方法是检查您的代码,找出哪个对象是 null 并将其初始化为有效值。 ### 回答2: org.apache.cxf.binding.soap.SoapFault: Fault: java.lang.NullPointerException 是一个SOAP异常,它指出在处理SOAP消息时发生了一个空指针异常。 SOAP(简单对象访问协议)是一种用于在网络上交换结构化信息的协议。当客户端与服务端之间通过SOAP通信时,可能会出现各种异常,包括空指针异常。 在这种情况下,org.apache.cxf.binding.soap.SoapFault 表示SOAP通信期间发生了错误,导致服务端返回了一个SOAP错误消息。这个错误消息的具体内容是 "Fault: java.lang.NullPointerException",意味着在服务端处理请求时发生了空指针异常。 空指针异常(java.lang.NullPointerException)通常是由于使用了一个空对象的引用而产生的。在这种情况下,服务端可能在处理请求过程中调用了一个未初始化或为空的对象,导致空指针异常的抛出。这可能是由于代码缺陷、错误的数据传递或其他运行时错误导致的。 要解决这个问题,需要检查服务端代码,并确保正确地初始化和使用对象引用,避免出现空指针异常。可以使用调试技术或添加日志语句来帮助确定引发异常的具体位置,并进行修复。此外,还可以检查数据传递过程中是否存在错误,确保正确地传递和解析数据。 总之,org.apache.cxf.binding.soap.SoapFault: Fault: java.lang.NullPointerException 是一个SOAP异常,它告诉我们在处理SOAP消息时发生了一个空指针异常。解决此问题需要检查服务端代码,并确保正确地初始化和使用对象引用,以及确保数据传递过程中的正确性。 ### 回答3: org.apache.cxf.binding.soap.SoapFault: Fault: java.lang.NullPointerException是一个SOAP协议的错误,它表示在CXF框架中发生了一个空指针异常。 空指针异常(NullPointerException)通常是由于程序中的某个对象为空而引起的。在这个特定的错误中,CXF框架在处理SOAP消息时发生了一个未预料到的空指针异常。 要解决这个问题,我们需要追踪错误的发生点并找出为空的对象。首先,检查CXF框架相关的配置文件,确保所有的依赖项都正确地配置和加载。如果配置正确,那么可能是代码中的某个对象没有正确地被初始化或注入。 使用调试工具来调试代码是一种很好的方法,它可以帮助我们找出具体的出错位置。一旦错误点被确定,我们可以通过增加空检查的逻辑或者检查对象的初始化过程来解决这个问题。 另外,确保在CXF框架的使用过程中遵循最佳实践,例如正确地配置和使用CXF的异常处理机制,以及正确地处理和记录异常信息。 总而言之,org.apache.cxf.binding.soap.SoapFault: Fault: java.lang.NullPointerException表示在CXF框架中发生了一个空指针异常。为了解决这个问题,我们需要定位并修复代码中的空指针异常。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值