webservice的入门案例2 :使用wsimport命令生成webservice的客户端接口

article/2025/10/15 15:15:10

一 使用wsimport命令生成webservice的客户端接口

1.1 wsimport命令工具

 在我们安装的jdk的bin的bin文件夹中,有一个wsimport.exe,这个工具依据wsdl文件生成相应的类文件,然后用这些类文件,就可以像调用本地的类一样调用WebService提供的方法

该工具可以用于非Java的服务器,如:用C#编写的WebService,通过wsimport则生成Java的客户端实现。

1.2  使用wsimport 生成webservice客户端代码的思想流程

1.使用wsimport 命令之前必须先运行服务;

2.一般优先根据wsdl地址生成客户端代码

      2.1 生成源文件的指定路径、包名、包的路径可以修改,建议写的规范一点,这样可以直接复制到自己的项目下

     2.2  service类:生成的源文件中,关键的是继承了javax.xml.ws.Service这个类的子类,即以Service结尾的一个类,形如XXXService,以及getXXXPort()方法返回对应的接口。

     2.3 代理对象:service类中通过要调用的方法,扥到一个对象。这里为sayHelloName方法

3.有时运行结果需要等待很久,是由于接口的原因,属于正常情况;

 

二 案例操作

2.1 服务端启动

服务端代码使用上一篇文章的写的服务端,将其启动,服务器必须先运行

2.2 根据服务端发布的wsdl地址去生成代码

因为jdk配置了环境变量,所以只要在cmd的任何窗口,输入wsimport xxxx 命令都可以。

win+r 打开cmd命令窗口,输入:wsimport -s  "d:/ws-111/" -p "com.bonc.ws.client.webservice" "http://localhost:8002/ws-demo?wsdl",        文件的生成路径、包名、包的路径可以自己随便修改。

.打开资源管理器,在D:\ws-111\com\bonc\ws\client\webservice目录下,可以看到生成了一堆java文件:

2.3 将生成的com\bonc\ws\client\webservice包复制到项目下,关键的两个类:

(1)PersonService类,继承了javax.xml.ws.Service这个类的子类,里面有一个无参的getXXXPort()方法,用 @WebEndpoint标识,即getPersonPort()方法

(2)PersonService类的getXXXPort()方法返回的类型所对应的接口,即Speaker接口。

 

2.4  客户端调用服务端

package com.bonc.ws.client;import com.bonc.ws.client.webservice.PersonService;
import com.bonc.ws.client.webservice.Speaker;/*** @ClassName: Test* @Description: TODO* @Author: liujianfu* @Date: 2021/03/18 11:48:48 * @Version: V1.0**/
public class Test {public static void main(String args[]){//1.创建servicePersonService service = new PersonService();//2.获取代理对象Speaker speaker = service.getPersonPort();//3.调用服务端方法String str = speaker.sayHello("JURF");System.out.println(str);}
}

运行结果:

参考地址:https://blog.csdn.net/BeauXie/article/details/52869870

 

 

 


http://chatgpt.dhexx.cn/article/LHbMUT0F.shtml

相关文章

WebService入门(二)wsimport的使用

前言 本章学习wsimport命令的基本使用 方法 1.概念 在前面快速入门的例子中我们不难看出,我们创建客户端的时候调用了服务端的service类。但是我们知道,服务端的开发语言可不止Java,只不过我们做实验的时候恰好使用了!&#xf…

webservice——wsimport命令建立webService本地客户端

一、wsimport简介 在JDK的bin文件夹中,有一个wsimport.exe工具,可依据wsdl文件生成相应的类文件,将生存在本地这些类文件拷贝到需要使用的项目中,就可以像调用本地的类一样调用webService提供的方法。该工具可以用于非Java的服务器…

Webservice生成客户端的案例——Wsimport命令

一、Wsimport命令  wsimport是jdk自带的webservice客户端工具,可以根据wsdl文档生成客户端调用代码(java代码).当然,无论服务器端的WebService是用什么语言写的,都可以生成调用webservice的客户端代码,服务端通过客户端代码调用webservice。  wsimport.exe位于J…

wsimport命令

目录 1、wsimport命令介绍 2、wsimport命令常见问题处理 2.1、问题描述 2.2、解决步骤 1、wsimport命令介绍 wsimport命令是JDK自带的命令,它能够根据服务端说明书(wsdl)生成对应的本地java代码,wsimport命令对应的参数信息如…

人体感应模块

人体感应模块 简单来说: 端接电源的正极;-端接电源的负值;out端为输出端,当人进入范围时输出高电平,人离开范围时延时一段时间后输出低电平。

K_A12_004 基于STM32等单片机采集人体红外感应(HC-SR501)模块串口与OLED0.96双显示

K_A12_004 基于STM32等单片机采集人体红外感应(HC-SR501)模块串口与OLED0.96双显示 一、资源说明二、基本参数参数引脚说明 三、驱动说明模块工作原理:对应程序: 四、部分代码说明1、接线引脚定义1.1、STC89C52RCHC-SR501模块1.2、STM32F103C8T6HC-SR501…

人体红外感应-热释电传感器HC-SR501

HC-SR501是基于红外线技术的自动控制模块 , 采用德国原装进口 LHI778 探头设计,灵敏度高,可靠性强,超低电压工作模式 , 广泛应 用于各类自动感应电器设备, 尤其是干电池供电的自动控制产品。 实物图片 电…

人体+LED,实现人体感应灯

#define PIN_1 2 //定义人体红外引脚 #define PIN_2 4 //定义LED灯引脚 void setup() { Serial.begin(9600);//串口初始化 pinMode(PIN_1,INPUT); //设定红外感应器为输入模式 pinMode(PIN_2,OUTPUT); // 设定LED引脚为输出模式 } void loop() { //当红外感应器引脚为高电平…

STM32的 DHT11温湿度模块+红外人体感应模块程序

基于物联网的智能窗户Day3 DHT11温湿度模块HC_SR501红外人体感应模块结果展示ending DHT11温湿度模块 传感器包括一个高分子电阻式感湿度元件和一个NTC测温元件,并于一个高性能8位单片机相连,通过单总线与微处理器通信,只需要一根数据线。 在…

关于HC-SR501人体红外感应模块的光敏电阻取值到底为多少的终极研究

这个光敏电阻到底应该选多大的?商家讲不来,资料里没有,百度搜不到。资料里只说,预留了这个接口,自己买光敏电阻焊接就可以了,但是我焊接了3个不同的光敏电阻,结果全是不符合预期,一度…

Arduino - 驱动HC-SR501 人体红外感应模块

参考文章: Arduino - 驱动HC-SR501 人体红外感应模块 Arduino 使用人体红外感应模块 HC-SR501 代码如下: /* Arduino 驱动HC-SR501 人体红外感应模块 Created 2017/03 by 太极创客本程序旨在使用Arduino Uno驱动HC-SR501 人体红外感应模块。 * 连接说明…

ESP32 Micropython编程(Thonny)04---- 人体感应模块

本人持续分享更多关于嵌入式和单片机的知识,如果大家喜欢,别忘点个赞加个关注哦,让我们一起共同进步 最近使用到人体感应模块HC-SR501,这个模块使用十分简单,看下面代码就可以看出了,而且应用广泛&#xff…

stm32f4红外传感器模块 和人体感应模块HCSR501

也同时买了个红外传感器模块 还买了一个长这样的 这个好容易随便写写了 初始化一下gpioB引脚 __HAL_RCC_GPIOB_CLK_ENABLE(); GPIO_Initure.PinGPIO_PIN_2; //PB2GPIO_Initure.ModeGPIO_MODE_INPUT; //输入GPIO_Initure.PullGPIO_PULLUP; //下拉GPIO…

基于Arduino实现简单人体红外感应灯(人体红外传感器+LED)

这是一个使用arduino以及人体红外传感器实现的人体感应灯,详细细节如下: 1. 实验元件 UNO 实验套装(arduino控制板、USB数据线、面包板、跳线)人体红外传感器1个led灯1个电阻(220欧,1个) 2. 实现…

人体感应模块stm32驱动

热释电效应 在某些绝缘物质中,由于温度的变化引起极化状态改变的现象称为热释电效应。能实现热释电效应的物质被称为热电体。热电体物质有硫酸三甘肽(TGS)、铁电钛酸钡、电气石和蔗糖等。这一现象早在2300年前就被人们发现了,但对它的研究则…

基于51控制的人体感应灯

文章目录 前言1 背景2 可实现功能3 制作材料4 设计电路5 设计原理5.1 原理一(人体感应)5.2 原理二(距离感应)5.3 原理三(灯的亮度调节) 6 程序设计7 成品模型展示总结 前言 首先我先说说为什么要做这个东西…

人体感应(红外感应)

一、需求描叙 通过打开写的测试的app,点击测试的按钮,循环调用控制人体感应的方法来控制人体感应仪器(应该是红外感应)。 二、完成测试程序涉及到的文件: 1.一个xxx.so文件; 这个文件要导入到Android系统…

Arduino 使用人体红外感应模块 HC-SR501

通过这篇文章,可以了解到以下内容: HC-SR501 传感器的基本信息及接线方法HC-SR501 跳线选择的两种时间模式HC-SR501 简单功能实验 HC-SR501 传感器的基本信息及接线方法 HC-SR501 是一款基于热释电效应的人体热释运动传感器,能检测到人体或…

HC-SR501人体红外感应模块程序

当感应到时,输出一个高电平。这里我对io口进行了配置,要不然读不到高电平。建议大家以后养成习惯,对io口进行配置,stm32中会用到。 在这里我额外提下,一般在stm32中 浮空输入 芯片内部没有接上下拉电阻。由于其输入阻…

单片机之人体感应传感器原理与实现

人体红外传感器,是一种新型传感器,能够有效的检测出周围环境的状态。 第一:人体红外模块工作原理 人体都有恒定的体温,一般在37度,所以会发出特定波长10UM左右的红外线,被动式红外探头就是靠探测人体发射的…