java 调用wsdl协议接口简单实用方法最新推荐

 更新时间:2025年03月04日 10:31:03   作者:锋丷  
文章介绍了如何使用POM导入依赖,并编写一个测试类来调用不同的Web服务接口,通过访问接口地址,我们可以获取请求和返回的body,并进一步解析返回的JSON结果,感兴趣的朋友一起看看吧

1.导入pom

<!-- JAX-WS API -->
<dependency>
    <groupId>javax.xml.ws</groupId>
    <artifactId>jaxws-api</artifactId>
    <version>2.3.1</version>
</dependency>
<!-- JAX-WS Runtime -->
<dependency>
   <groupId>com.sun.xml.ws</groupId>
   <artifactId>jaxws-rt</artifactId>
   <version>2.3.1</version>
</dependency>
<!-- 工具集 -->
<dependency>
	<groupId>cn.hutool</groupId>
	<artifactId>hutool-all</artifactId>
	<version>5.7.15</version>
</dependency>

2.编写测试类TestWsdl

import cn.hutool.http.webservice.SoapClient;
import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import javax.xml.soap.SOAPMessage;
/**
 * 测试调用wsdl接口
 * @author laijiangfeng
 * @date 2024/9/27 9:51
 */
public class TestWsdl {
    public static void main(String[] args) throws Exception {
        // 创建SoapClient实例 wsdl协议请求地址:http://xxx.cn/services/GanSuInterface (去掉?wsdl)
        SoapClient client = SoapClient.create("http://xxx.cn/services/GanSuInterface")
                // 设置方法名和命名空间(命名空间url:http://webservice.xxx.xxx ,方法名:getSydwJsonList)
                // tns 命名空间targetNamespace,没有命名空间时直接写方法名即可
                .setMethod("tns:getSydwJsonList", "http://webservice.xxx.xxx")
                // 设置参数(最后的false参数表示参数不加命名空间的前缀web)
                .setParam("in0", "afe9cff39173ff8901917a54c90e448d", false);
        //获取SOAPMessage实例(此步作用是输出请求的XML参数,实际开发并不需要)
		SOAPMessage message = client.getMessage();
		System.out.println(client.getMsgStr(true));
        // 发送请求(true表示输出的结果格式化处理)
        String send = client.send(true);
        Document document = DocumentHelper.parseText(send);
        Element root = document.getRootElement();
        String value = root.getStringValue();
        System.out.println(send);
        System.out.println(value);
    }
}

命名空间url不同的接口可能不一样自己通过访问接口地址获取

3.运行main结果

上面第一部分是请求body、第二部分是返回的结果body、第三部分是解析后的结果json

到此这篇关于java 调用wsdl协议接口简单实用方法最新推荐的文章就介绍到这了,更多相关java 调用wsdl接口内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Java中CyclicBarrier和CountDownLatch的用法与区别

    Java中CyclicBarrier和CountDownLatch的用法与区别

    CyclicBarrier和CountDownLatch这两个工具都是在java.util.concurrent包下,并且平时很多场景都会使用到。本文将会对两者进行分析,记录他们的用法和区别,感兴趣的可以了解一下
    2021-08-08
  • SpringBoot事务不回滚的解决方案

    SpringBoot事务不回滚的解决方案

    这篇文章主要介绍了SpringBoot事务不回滚的解决方案的相关资料,需要的朋友可以参考下
    2022-09-09
  • spring使用OXM进行对象XML映射解析

    spring使用OXM进行对象XML映射解析

    这篇文章主要介绍了spring使用OXM进行对象XML映射解析,具有一定借鉴价值,需要的朋友可以参考下
    2017-12-12
  • Java实现对象列表导出为excel表格的实用工具类

    Java实现对象列表导出为excel表格的实用工具类

    这篇文章主要为大家详细介绍了Java如何实现对象列表导出为excel表格的实用工具类,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2023-12-12
  • Hibernate悲观锁和乐观锁实例详解

    Hibernate悲观锁和乐观锁实例详解

    这篇文章主要介绍了Hibernate悲观锁和乐观锁实例详解,分享了相关代码示例,小编觉得还是挺不错的,具有一定借鉴价值,需要的朋友可以参考下
    2018-02-02
  • IDEA解决@Slf4j中log报红问题

    IDEA解决@Slf4j中log报红问题

    在IntelliJ IDEA中使用log.info()时,如果出现错误,通常是因为缺少Lombok插件,以下是解决方法:打开IntelliJ IDEA,进入设置(File > Settings 或者 Ctrl+Alt+S),在Plugins部分点击Browse repositories,搜索Lombok并安装,安装完成后,问题通常可以解决
    2024-12-12
  • 为什么Java项目中别用!=null做判空

    为什么Java项目中别用!=null做判空

    本文主要介绍了为什么Java项目中别用!=null做判空,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-04-04
  • Java中的Comparable接口与Comparator接口区别解析

    Java中的Comparable接口与Comparator接口区别解析

    文章介绍了Java中的Comparable接口和Comparator接口,Comparable接口定义了一个compareTo方法,用于比较对象的顺序,实现Comparable接口的类可以提供自然排序规则,详细介绍了Java中的Comparable接口与Comparator接口区别,感兴趣的朋友一起看看吧
    2025-02-02
  • Java实现把文件压缩成zip文件的示例代码

    Java实现把文件压缩成zip文件的示例代码

    这篇文章主要为大家介绍了如何通过Java语言实现将文件压缩成zip文件,本文中示例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-02-02
  • Spring Boot中KafkaListener的介绍、原理和使用方法案例详解

    Spring Boot中KafkaListener的介绍、原理和使用方法案例详解

    本文介绍了Spring Boot中 @KafkaListener 注解的介绍、原理和使用方法,通过本文的介绍,我们希望读者能够更好地理解Spring Boot中 @KafkaListener 注解的使用方法,并在项目中更加灵活地应用
    2023-09-09

最新评论