半新手向,webservice开发调用wsdl,调用他人的服务

背景

调用别人的服务
首先得有一个wsdl文件
这个文件可以手动发你,也可以通过链接网页,复制网页上的所有内容保存为wsdl文件。
以上为前提。
假设你已经有了wsdl文件。

wsdl文件有两种方式转成java文件

第一种wsimport

E:\temp\webservice>wsimport -keep -p com.test test.wsdl
正在解析 WSDL...
正在生成代码...正在编译代码...E:\temp\webservice>

这很正常,就结束了。
如果出现问题,比如说首行不对,看一看,改一改即可。
如果说出现重复注意一下啊,wsimport上暂时没找到解决方案得用第二种

第二种wsdl2java

这种是用一个apache-cxf里的工具
文件全名为 apache-cxf-3.1.15
你从csdn找个链接下,找官网也行,就是贼慢,那个版本都行。
然后下完了配一下环境变量path里加一行指向这个文件的bin文件
之后在cmd中使用命令

wsdl2java -p com.example.generated -d output_directory -autoNameResolution wsdl.wsdl

wsdl2java :顾名思义,wsdl文件转为java文件;
-p com.example.generated:生成的java文件所保存的文件路径;【可以先用上之后再改也可】
-d output_directory:生成的java文件所保存的文件路径的文件夹;【当src用】
-autoNameResolution;自动选择自动名称,【就是把重复名字的加上路径前缀】
wsdl.wsdl;就是一个名字叫做wsdl的wsdl文件;

生成的java文件使用

这玩意比较麻烦
你需要找你的生成的文件中的Service,东西多的话比较难找,因为他把所有东西都放在了com.example.generated包下;
我自己写了个代码把所有文件名取出来,筛选出后缀为Service的
代码丑陋,能用上就行

import java.io.File;/**
* getmulu
*
* @author: Myli  c
* @Date: 2023/12/26 10:34
* @version: 1.0
*/public class PackageScanner {public static void main(String[] args) {String packageName = "E:\\output_directory\\com\\example\\"; // 替换成你的包名PackageScanner packageScanner = new PackageScanner();packageScanner.scanPackage(packageName);}public void scanPackage(String packagePath) {File packageDirectory = new File(packagePath);if (packageDirectory.isDirectory()) {System.out.println("Files in package " + packagePath + ":");listFiles(packageDirectory);} else {System.err.println(packagePath + " is not a valid package directory.");}}private void listFiles(File directory) {File[] files = directory.listFiles();if (files != null) {for (File file : files) {if (file.isDirectory()) {listFiles(file);} else {// 仅在文件名以"service"结尾时输出if (file.getName().toLowerCase().endsWith("service.java")) {System.out.println(file.getName());}}}}}
}
Connected to the target VM, address: '127.0.0.1:56671', transport: 'socket'
Files in package E:\\output_directory\com\example\:
xxxx_Service.java
Disconnected from the target VM, address: '127.0.0.1:56671', transport: 'socket'

这个xxxx_Service.java就是你的实例化服务

写完才发现,直接在生成的文件中全局搜 extends Service更快(⊙﹏⊙)

总结一下

//导入生成的类: 在您的Java代码中,导入生成的客户端类。例如:import com.example.generated.YourWebServicePortType;
import com.example.generated.YourWebServiceService;//创建服务实例: 创建WebService服务实例。这通常涉及到使用生成的服务类创建一个实例。例如:YourWebServiceService service = new YourWebServiceService();
YourWebServicePortType port = service.getYourWebServicePortTypePort();//调用WebService方法: 使用生成的客户端类的方法调用WebService方法。
//方法的签名和命名通常基于WSDL中定义的操作。例如:// 调用WebService的方法
String result = port.yourWebServiceMethod(parameter1, parameter2);
//请替换yourWebServiceMethod和parameter1,parameter2等与您的WebService方法和参数相对应的内容。//处理结果: 处理WebService方法的返回值,如果有的话。System.out.println("WebService Result: " + result);
//异常处理: 添加适当的异常处理,以处理可能发生的错误。try {// 调用WebService的方法String result = port.yourWebServiceMethod(parameter1, parameter2);System.out.println("WebService Result: " + result);
} catch (Exception e) {e.printStackTrace();// 处理异常
}

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

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

相关文章

CSRF和SSRF原理、区别、防御方法

CSRF(Cross-Site Request Forgery)原理:CSRF是一种由攻击者构造形成,由服务端发起请求的一个安全漏洞。它是一种利用用户在已登录的网站中提交非法请求的行为,攻击者通过伪造用户提交的请求,将恶意请求发送…

C++的多继承和虚继承

目录 多继承的定义和用法定义多继承多继承中派生类对象的内存布局访问基类成员多继承带来的问题 虚继承虚继承的语法虚继承对象的内存布局虚继承中的构造虚继承的缺点 多继承的定义和用法 C支持多继承,即一个派生类可以有多个基类。 很多时候,单继承就…

效果图渲染电脑渲染好?还是云渲染更好?

效果图的渲染是建筑和室内设计领域中不可或缺的一步,随着技术的发展,云渲染作为一项新技术,正逐渐受到人们关注。今天,让我们深入探讨电脑渲染和云渲染这两种方法的优缺点以及它们的适用场景。 本地电脑渲染 本地电脑渲染是利用用…

往年面试精选题目(前50道)

常用的集合和区别,list和set区别 Map:key-value键值对,常见的有:HashMap、Hashtable、ConcurrentHashMap以及TreeMap等。Map不能包含重复的key,但是可以包含相同的value。 Set:不包含重复元素的集合&#…

库函数atoi的功能及模拟实现

atoi函数的功能 int atoi(const char * str) 参数是字符指针,函数值是转换后的int型数据。使用时要包含头文件stdlib.h。 atoi函数的功能是:跳过不可见(空白)字符(如空格、换页\f、换行\n、回车\r、制表符\t、垂直制表符\v),碰到正负号或…

cfa一级考生复习经验分享系列(十四)

首先说一下自己的背景,一个和金融没有半毛钱关系的数据分析师,之前考出了FRM。这次用一个半月突击12月的1级考试拿到了9A1B的成绩,纯属运气。以下纯属经(chě)验(dn),请看看就好&…

【webservice】cxf开发常见问题汇总

文章目录 1. 使用soapui测试时存在cdata嵌套的问题 1. 使用soapui测试时存在cdata嵌套的问题 说明&#xff1a;如果使用soapui进行webservice测试时要求数据放置在<![CDATA[ 和]]>中间&#xff0c;但是如果传递的XML文件中也存在cdata&#xff0c;并且不做处理的话&…

在k8s中使用cert-manager部署gitlab集群

写在前面的话&#xff1a;前面有详细的分享过在k8s集群中部署gitlab&#xff0c;不过当时使用gitlab的访问证书是阿里云上免费的ssl证书&#xff0c;今天特意专门介绍下另外一种基于cert-manager发布自签证书的方式实现部署gitlab到k8s集群中。 往期gitlab部署系列如&#xff1…

【ESP32运行MicroPython】连接无线网络、延迟和定时、实时时钟 (RTC)、WDT(看门狗定时器)

常用语法如下 import network wlan network.WLAN(network.STA_IF) #创建工作站接口 wlan.active(True) #激活接口 Wlan.scan() #扫描接入点 wlan.isconnected() #检查站点是否连接到AP wlan.connect(ssid&#xff0c; key) #连接AP wifi名称与密码 wlan.config(mac) #获取接口…

麒麟信安桌面操作系统顺利上线长沙职业技术学院,深度促进产教融合,赋能信创人才培养

随着信息基础设施国产化进程的加快&#xff0c;信息技术创新产业对人才的需求量激增&#xff0c;为解决信创人才培养难题、深度促进产教融合&#xff0c;近日&#xff0c;麒麟信安、湖南欧拉生态创新中心携手长沙职业技术学院共同组建的“麒麟信安&欧拉(openEuler)国产操作…

【小黑嵌入式系统第十三课】PSoC 5LP第二个实验——中断控制实验

上一课&#xff1a; 【小黑嵌入式系统第十二课】μC/OS-III程序设计基础&#xff08;二&#xff09;——系统函数使用场合、时间管理、临界区管理、使用规则、互斥信号量 文章目录 1 实验目的2 实验要求3 实验设备4 实验原理4.1 中断(1) 中断机制概述(2) 中断源(3) 中断系统的功…

DshanMCU-R128s2硬件设计参考

R128 DevKit 开发板 硬件工程开源地址&#xff1a;https://oshwhub.com/gloomyghost/r128-module电路图&#xff1a;SCH_R128-DevKit_2023-09-05.pdfPCB&#xff1a;ProDocument_R128-DevKit_2023-09-05.eproGERBER&#xff1a;Gerber_R128-DevKit_2023-09-05.zipSTL&#xff…

鸿蒙开发语言介绍--ArkTS

1.编程语言介绍 ArkTS是HarmonyOS主力应用开发语言。它在TypeScript (简称TS)的基础上&#xff0c;匹配ArkUI框架&#xff0c;扩展了声明式UI、状态管理等相应的能力&#xff0c;让开发者以更简洁、更自然的方式开发跨端应用。 2.TypeScript简介 自行补充TypeScript知识吧。h…

python对图片进行旋转操作

Python提供了许多库来对图片进行操作,其中最常用的可能是PIL(Python Imaging Library,又名Pillow)。Pillow库允许你进行诸如读取、修改和保存图像等操作。 以下是一个简单的例子,展示了如何使用Pillow库来打开一张图片,对其进行一些简单的操作,然后保存结果: from PI…

鸿蒙列表,item组件封装传参问题?@ObjectLink 和@Observerd

鸿蒙列表渲染&#xff0c;封装内容组件&#xff0c;进行item传参会报错&#xff1f; class FoodClass {order_id: number 0food_name: string ""food_price: number 0food_count: number 0 }Entry Component struct Demo07 {State message: string Hello World…

ElasticSearch 架构设计

介绍 ElasticSearchMySQLIndexTableDocumentRowFieldColumnMappingSchemaQuery DSLSQLaggregationsgroup by&#xff0c;avg&#xff0c;sumcardinality去重 distinctreindex数据迁移 参考博客 [1]

ZooKeeper Client API 安装及使用指北

下载 wget https://archive.apache.org/dist/zookeeper/zookeeper-3.5.4-beta/zookeeper-3.5.4-beta.tar.gz解压 tar -zxf zookeeper-3.5.4-beta.tar.gz安装 cd zookeeper-3.5.4-beta/src/c/ ./configure make sudo make install到 make 这一步大概率会出现报错&#xff1a;…

【数据结构初阶】二叉树(2)

二叉树顺序结构 1.二叉树的顺序结构及实现1.1二叉树的顺序结构 1.2 堆的概念及结构1.3 堆的实现1.3.1向上调整1.3.2向下调整1.3.3交换函数1.3.4打印1.3.5初始化1.3.6销毁1.3.7插入1.3.8删除1.3.9获得堆顶元素1.3.10判断是否为空1.3.6 堆的代码实现 1.3.2堆的创建1.3.3 建堆时间…

怎么修复MSVCR110.dll文件?全面解析MSVCR110.dll缺失修复方法

MSVCR110.dll文件缺失问题在Windows操作系统用户中相当普遍&#xff0c;经常导致应用程序启动失败或崩溃。MSVCR110.dll是Microsoft Visual C Redistributable for Visual Studio 2012的一部分&#xff0c;且应用程序通常依赖这个DLL文件来执行C库中的代码。文件的丢失可能源自…

javascript的Map和Set概念以及区别和使用场景

Map和Set JavaScript的默认对象表示方式{}可以视为其他语言中的Map或Dictionary的数据结构&#xff0c;即一组键值对。 但是JavaScript的对象有个小问题&#xff0c;就是键必须是字符串。但实际上Number或者其他数据类型作为键也是非常合理的。 Map Map是一组键值对的结构&a…