首页 > 其他分享 >WSDL接口调用

WSDL接口调用

时间:2024-07-12 17:29:38浏览次数:6  
标签:调用 http 接口 client cxf test import WSDL

1. 使用Apache CXF工具调用

1.1. MAVEN引用

<!-- cxf -->
<dependency>
    <groupId>org.apache.cxf</groupId>
    <artifactId>cxf-rt-frontend-jaxws</artifactId>
    <version>3.1.10</version>
</dependency>
<dependency>
    <groupId>org.apache.cxf</groupId>
    <artifactId>cxf-rt-transports-http</artifactId>
    <version>3.1.10</version>
</dependency>

1.2. 接口调用程序示例

package com.wzl.test;

import com.alibaba.fastjson.JSON;
import org.apache.cxf.endpoint.Client;
import org.apache.cxf.jaxws.endpoint.dynamic.JaxWsDynamicClientFactory;

public class Wsdl {

    public static void main(String[] args) throws Exception {
        // 创建JaxWsDynamicClientFactory工厂
        JaxWsDynamicClientFactory factory = JaxWsDynamicClientFactory.newInstance();
        // 创建Client对象
        Client client = factory.createClient("http://localhost:8008/test.asmx?WSDL");
        // 调用方法
        Object[] results = client.invoke("方法名", "参数1", "参数2");
        //输出返回结果
        System.out.println(JSON.toJSONString(results));
    }

}

2. 使用Hutool工具的SOAPClient调用

相比Apache CXF的调用方式更灵活,能够根据自己的需要组装XML请求,如果CXF方式调用不适用的情况下,可以考虑此方法,除此之外还有axis的方法调用(此处不做介绍)。

2.1. MAVEN引用

<!-- hutool(此处引用全部,可以按需引用) -->
<dependency>
    <groupId>cn.hutool</groupId>
    <artifactId>hutool-all</artifactId>
    <version>5.8.16</version>
</dependency>

2.2. 接口调用程序示例

package com.wzl.test;

import cn.hutool.http.webservice.SoapClient;

import javax.xml.soap.SOAPException;
import javax.xml.soap.SOAPMessage;

public class WsdlSoap {

    public static void main(String[] args) throws SOAPException {
        // 创建SoapClient实例
        SoapClient client = SoapClient.create("http://localhost:8008/test.asmx?WSDL")
                // 设置方法名和命名空间(web:命名空间,test:方法名,没有命名空间时直接写方法名即可)
                .setMethod("web:test", "http://service.webservice.adcc.com/")
                // 设置参数(最后的false参数表示参数不加命名空间的前缀web)
                .setParam("username", "admin", false)
                .setParam("password", "admin", false);

        // 获取SOAPMessage实例(此步作用是输出请求的XML参数,实际开发并不需要)
        SOAPMessage message = client.getMessage();
        System.out.println(client.getMsgStr(true));

        // 发送请求(true表示输出的结果格式化处理)
        String send = client.send(true);
        System.out.println(send);
    }

}

上面示例输出的请求XML如下:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
  <SOAP-ENV:Header/>
  <SOAP-ENV:Body>
    <web:test xmlns:web="http://service.webservice.adcc.com/">
      <username>admin</username>
      <password>admin</password>
    </web:test>
  </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

标签:调用,http,接口,client,cxf,test,import,WSDL
From: https://www.cnblogs.com/wzlfm/p/18298699

相关文章

  • 推荐几个免费的http mock接口
    在前后端分离开发架构下,经常遇到调用后端数据API接口进行测试、集成、联调等需求,比如:(1)前端开发人员很快开发完成了UI界面,但后端开发人员的API接口还没有完成,不能进行前后端数据接口对接和联调,很容易影响开发进度。前端开发人员用的比较多的开源组件有mock.js,但该组件缺乏界面管理......
  • 嵌入式linux使用usb接口,共享windows网络
    【RNDIS】嵌入式linux使用usb接口,共享windows网络内核配置CONFIG_USB_GADGETFS=mCONFIG_USB_ETH=mCONFIG_USB_ETH_RNDIS=yusb接口工作在device模式,我理解使用otg或者device模式都可以。数据流以太网<----->windows/linux网卡<----->usb接口<----->嵌入式Linux系统......
  • AvalonMM接口PIO IP的介绍和PIO的读写操作详解
    一、PIO寄存器介绍Avalon®-MM主机外设(如CPU)通过四个32位寄存器控制并与PIO核通信,如下所示。该表假设PIO核的I/O端口被配置为n位宽度。以上截图来自IntelEmbeddedPeripheralsIPUserGuide。data寄存器如果将PIO硬件配置为输入或仅输入输出模式,则从数据读取将返回输入端......
  • NET6 通过接口完成自动注入
    根据NETCore的注入方式添加三个接口///<summary>///瞬时注入服务接口///</summary>publicinterfaceITransient{}///<summary>///作用域注入服务接口///</summary>publicinterfaceIScoped{}///<summary>///单例注入服务接口///</summary>public......
  • OpenCV一个简单的摄像头调用与关闭
    在使用OpenCV(OpenSourceComputerVisionLibrary)进行摄像头调用与关闭时,通常使用cv2.VideoCapture()函数来调用摄像头,并通过适当的方式关闭它。调用摄像头首先,需要导入OpenCV库(通常简写为cv2),并使用cv2.VideoCapture()函数来启动摄像头。这个函数可以接收一个整数作为参......
  • Lua调用C的函数
    #include<iostream>#include<string>usingnamespacestd;extern"C"{#include"lua.h"#include"lualib.h"#include"lauxlib.h"}intmyTest(lua_State*L){//获得Lua函数的参数的数量intn......
  • 5-Set接口和常用方法
    5-Set接口和常用方法介绍汇总:Set接口基本介绍Set接口的常用方法Set接口的遍历方式实践练习1-Set接口基本介绍无序(添加和取出的顺序不一致),没有索引不允许重复元素,所以最多包含一个null2-Set接口的常用方法和List接口一样,Set接口也是Collection的子接口。因此,......
  • (5)继承与接口
    上一章主要学习了类与对象的有关知识点,讨论了类的构成以及用类创建对象等内容,主要体现了面向对象编程的一个重要特点——数据的封装。本章讲述这两方面的重要内容——类的继承与多态、接口的实现与多态。1.子类与父类继承是一种由已有的类创建新类的机制。先编写一个有属性......
  • 易优CMS文章付费设置与调用标签
    {eyou:articlepayid='field'}<!--内容显示--><div{$field.contentId}>{$field.content}</div><!--付费文档--><div{$field.displayId}><div><div>当前隐藏内容需要支付<span>{$eyou.field.users_price......
  • php实名认证示例、实人认证接口
    随着互联网的高速发展,人们可以发表言论的渠道越来越多。网络平台不断汲取各地、各人、各时发表的各种信息。人们喜欢将信息发布到微博、知乎、天涯、豆瓣等等网络平台,逐步的,网络信息进入大爆炸时代。这些大量涌现的信息中难免掺杂着一些不良信息,比如:虚假信息、污言秽语、违法......