Hutool SoapClient 调用使用@webservice 发布的webService接口,参数传递为空

news2024/9/9 4:59:14

一.发布webService接口

(1)接口声明

import javax.jws.WebService;

@WebService
public interface Calculator {
    String add(String a, String b);

    int multi(int a, int b);

}

(2)实现方法

 


import com.maxnerva.cloud.webservice.service.Calculator;

import javax.jws.WebService;

public class CalculatorImpl implements Calculator {

    @Override
    public String add(String a, String b) {
        return a +  b;
    }

    @Override
    public int multi(int a, int b) {
        return a * b;
    }
}

(3) 发布

public class Test {
    public static void main(String[] args) {
        Endpoint.publish("http://127.0.0.1:8088/calculator",
                new CalculatorImpl());
}
}

二.hutool SoapClient 访问

验证add方法

1.Web 访问:

2.调用

import cn.hutool.http.webservice.SoapClient;


public class TestImpl {
    public static void main(String[] args) {
        SoapClient soapClient = SoapClient.create("http://127.0.0.1:8088/calculator?wsdl");
        soapClient.setMethod("add", "http://service.webservice.cloud.maxnerva.com/").setParam("a", "1").setParam("b","1");
        String send = soapClient.send(true);
        System.out.println(send);
    }
}

3.执行报错: 所需元素为<{}arg1>,<{}arg0&gt

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Body>
    <soap:Fault>
      <faultcode>soap:Client</faultcode>
      <faultstring>Unmarshalling Error: 意外的元素 (uri:"http://service.webservice.cloud.maxnerva.com/", local:"a")。所需元素为&lt;{}arg1&gt;,&lt;{}arg0&gt; </faultstring>
    </soap:Fault>
  </soap:Body>
</soap:Envelope>

三.解决方案

安装SoapUI工具

将测试的webservice 链接加入进去可以看到具体方法体,如图,其中方法名在webService 里面变成了"ser:add";参数变为了"arg0","arg1":

重新修改验证调用方法为:

import cn.hutool.http.webservice.SoapClient;


public class TestImpl {
    public static void main(String[] args) {
        SoapClient soapClient = SoapClient.create("http://127.0.0.1:8088/calculator?wsdl");
        soapClient.setMethod("ser:add", "http://service.webservice.cloud.maxnerva.com/")
                .setParam("arg0", "1", false)
                .setParam("arg1","1", false);
        String send = soapClient.send(true);
        System.out.println(send);
    }
}

验证结果,成功:

注意参数设置

setParam(String name, Object value, boolean useMethodPrefix) 其中useMethodPrefix为fasle,是不使用方法名的前缀,在这个示例种,方法add的前缀为“ser”

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Body>
    <ns2:addResponse xmlns:ns2="http://service.webservice.cloud.maxnerva.com/">
      <return>11</return>
    </ns2:addResponse>
  </soap:Body>
</soap:Envelope>

四,注意:

使用 @webservic发布webService 接口的时候,方法名或者参数可能和定义有区别,可借助SoapUI工具查看

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1961373.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

初始mybatis

一、J D B C 编程和 ORM 模 型 1.JDBC回顾 加载驱动 &#xff1a;导入JDBC 连接数据库的 jar包&#xff0c;利用CLASS.forName 加载驱动&#xff1b; 获取连接 &#xff1a; 利用 DriverManager 获取 Connection&#xff0c;然后创建 Statement &#xff1b; 执行SQL语句 &…

算法刷题day20|回溯:39. 组合总和、40. 组合总和 II、131. 分割回文串

39. 组合总和 回溯 class Solution { private:vector<vector<int>> result;vector<int> path;void backtracking(vector<int>& candidates, int target, int sum, int startIndex) {if (sum > target) {return;}if (sum target) {result.push…

valideer,一个超强的 Python 库!

更多资料获取 &#x1f4da; 个人网站&#xff1a;ipengtao.com 大家好&#xff0c;今天为大家分享一个超强的 Python 库 - valideer。 Github地址&#xff1a;https://github.com/podio/valideer 在开发应用程序时&#xff0c;数据验证是一个至关重要的环节。它确保了输入数…

【SpringBoot】5 Swagger

官网 https://swagger.io/ 介绍 Swagger 是一套基于 OpenAPI 规范构建的开源工具&#xff0c;可以帮助开发者实现设计、构建、记录、使用 Rest API。 Swagger 是一款根据 Restful 风格生成的接口开发文档&#xff0c;并且支持做测试的一款中间软件。 Swagger主要包括三部分&…

jfif怎么改成jpg?分享给大家三个小技巧!

在数字时代&#xff0c;图片是我们日常生活和工作中不可或缺的一部分。然而&#xff0c;在处理图片时&#xff0c;我们可能会遇到各种格式的问题&#xff0c;比如JFIF格式的图片在某些平台上无法直接打开或编辑。别担心&#xff0c;今天我就给大家分享三个简单实用的小技巧&…

spring自动装配读取引用jar包下的META-INF文件里的类,将其加载进spring启动容器.

总结: 0.ComponentScan默认只扫描同包、子包下的所有类, 因此扫描不到引的其他jar包依赖里的类 1.引的其他jar包依赖里的类想要被spring加载进容器, 在spring2.7之前,要把类的全类名写在自己项目包下的resources/META-INF/spring.factories下的文件中, 从spring boot2.7开…

【Linux】软连接|硬链接|当前路径(.)|上级路径(..)|硬链接不能链接目录

目录 前言 软连接 ​编辑 删除源文件 快捷应用 总结 硬链接 硬链接为何不能链接目录 为什么软连接可以 软硬链接区别 当前路径(.)和上级路径(..) ​编辑 前言 在 Linux 中&#xff0c;文件的存储位置和数据&#xff08;属性内容&#xff09;是由 inode 号来唯一标…

spring源码 bean的生命周期

问&#xff1a;谈谈对spring的理解 答&#xff1a;总分思想&#xff0c;先说对spring的总体认知&#xff0c;再说小一点的比如&#xff1a;IOC,AOP,IOC如何实现&#xff0c;生命周期&#xff0c;循环依赖等 IOC&#xff1a;控制反转 xml和注解创建对象的流程 xm文件通过IO流读…

RVC-AI声音克隆-你的声音不再是唯一

RVC是一个基于Hubert模型的AI语音转换工具&#xff0c;可以实现男女声的互换和降噪。 本文将要介绍RVC的安装和使用方法 首先感谢花儿不哭大佬带来的RVC声音克隆 花儿不哭&#xff1a; 花儿不哭的个人空间-花儿不哭个人主页-哔哩哔哩视频 (bilibili.com) RVC下载地址&#xff…

Elastic 线下 Meetup 将于 2024 年 8 月 25 号在南京举办

2024 Elastic Meetup 南京站活动&#xff0c;由 Elastic、华博集团、新智锦绣联合举办&#xff0c;现诚邀广大技术爱好者及开发者参加。 时间地点 2024 年 8 月 25 日 13:30-18:00 活动地点 南京雨花台区花神大道 17 号 华博智慧园 7 楼 智慧岛会议厅 报名地址 2024 Elasti…

稳态准直太阳光模拟器仪器光伏电池组件IV测试

太阳能模拟器电池IV测试仪、单体测试仪&#xff0c;配备匹配标准的AAA Class稳态太阳能模拟器及相关测试附件&#xff0c;可对太阳能电池片的IV性能进行测量、分级分选等&#xff1b; 介绍 AAA class太阳光模拟器整合完整的IV测量系统&#xff0c;针对各种太阳能电池的性能&a…

Redis学习[3] ——持久化

四. Redis 持久化 4.1 Redis 如何保证数据不丢失&#xff1f; 由于Redis的数据是保存在内存中&#xff0c;而内存中的数据会在Redis重启后丢失。因此&#xff0c;为了保证数据不丢失&#xff0c;Redis实现了数据持久化的机制。这个机制会将内存中的数据存储到磁盘&#xff0c…

【JVM】内存区域、垃圾回收和内存分配策略

文章目录 运行时数据区域程序计数器Java虚拟机栈栈帧Java堆方法区运行时常量池 直接内存 揭秘对象对象的内存布局对象头实例数据对齐填充 对象的访问定位 OutOfMemoryError异常Java堆溢出虚拟机栈和本地方法栈溢出方法区和运行时常量池溢出本机直接内存溢出 对象已死&#xff1…

剪画小程序:什么?刷到陈楚生的视频转换成音频这么简单!

在这个信息爆炸的时代&#xff0c;我们常常在各种平台上刷到自己喜欢的视频&#xff0c;尤其是那些有陈楚生精彩表现的视频。 而有时候&#xff0c;我们可能只想单纯地聆听他的歌声&#xff0c;不想被视频画面所干扰。 你是否曾想过&#xff0c;把刷到的陈楚生的视频转换成音频…

爬虫实战:数据请求与解析(4种不同方式的数据解析)

根据目标网页的结构和内容的复杂性&#xff0c;我们可以选择多种不同的库或工具来提取所需的数据。本文将通过实战案例&#xff0c;介绍如何使用正则表达式、BeautifulSoup、pyquery、XPath 这四种方法从网页中解析数据。 一、准备工作 1.1 确定目标 我们测试的数据是崔庆才…

项目:基于gRPC进行项目的微服务架构改造

文章目录 写在前面基本使用封装客户端封装服务端Zookeeper 写在前面 最近学了一下gRPC进行远程调用的原理&#xff0c;所以把这个项目改造成了微服务分布式的架构&#xff0c;今天也是基本实现好了&#xff0c;代码已提交 这里补充一下文档吧&#xff0c;也算记录一下整个过程…

029-GeoGebra中级篇—一般对象之复数

GeoGebra 支持复数运算和可视化&#xff0c;允许用户在复平面上进行各种操作。用户可以定义复数、进行加减乘除等基本运算&#xff0c;并使用 GeoGebra 的图形工具在复平面上绘制复数的表示&#xff0c;探索复数的几何意义。这使得 GeoGebra 成为学习和研究复数及其应用的有力工…

合并K个有序链表

题目 给你一个链表数组&#xff0c;每个链表都已经按升序排列。 请你将所有链表合并到一个升序链表中&#xff0c;返回合并后的链表。 示例1&#xff1a; 输入&#xff1a; 输出&#xff1a; 示例2&#xff1a; 输入&#xff1a; 输出&#xff1a; 示例3&#xff1a; 输入&…

【Vue3】组件生命周期

【Vue3】组件生命周期 背景简介开发环境开发步骤及源码 背景 随着年龄的增长&#xff0c;很多曾经烂熟于心的技术原理已被岁月摩擦得愈发模糊起来&#xff0c;技术出身的人总是很难放下一些执念&#xff0c;遂将这些知识整理成文&#xff0c;以纪念曾经努力学习奋斗的日子。本…

Java从入门初级开发到精通百万级架构师:全套教程 | 学习路线(免费白嫖)

以下是一篇关于Java编程从入门到精通的文章&#xff0c;旨在帮助初学者和有一定基础的程序员系统地学习Java语言及其应用&#xff1a; Java语言编程从入门到精通&#xff1a;Java从入门到项目实战全套教程 Java作为一种广泛使用的编程语言&#xff0c;拥有强大的生态系统和丰富…