wsimport命令生成webservice客户端

article/2025/10/15 13:01:30

一、排除问题

1、今天接到一个任务,我做为客户端,调用服务端接口,通过生成wsdl文件的方式,所以用了wsimport命令,后台提示不支持soap编码

在这里插入图片描述

2、我看网上说,jdk1.7及以后就不在支持,于是我下了一个jdk1.6版本,结果还是有问题
在这里插入图片描述

二、解决问题

1、在网上看到说需要下载axis1.4版本的jar包,下载地址

在这里插入图片描述
2、下载到本地以后需要创建一个可以运行的.bat文件做一些简单配置

-- 这个是刚才下载的axis文件路径
set axis_lib=F:\axis-bin-1_4\axis-1_4\lib
set java_cmd=java -Djava.ext.dirs=%axis_lib%
-- 这个是webservice服务端地址
set axis_servlet=xxx/webservice/Service.jws?wsdl
-- 【-p】是生成文件的包路径,不加会有一个默认的,推荐加上,生成文件的同时也会把包路径一起生成。 
%java_cmd% org.apache.axis.wsdl.WSDL2Java -p webservice -u %axis_servlet%

3、双击bat,就会出现下面这些文件
在这里插入图片描述
拷贝到项目中
在这里插入图片描述
如你所见,方法报错了,是因为项目中没有相应的jar包。
如果是springboot项目,很简单,只需要引入相关依赖,

   <dependency><groupId>org.apache.axis</groupId><artifactId>axis</artifactId><version>1.4</version></dependency><dependency><groupId>javax.xml</groupId><artifactId>jaxrpc</artifactId><version>1.1</version></dependency><dependency><groupId>wsdl4j</groupId><artifactId>wsdl4j</artifactId><version>1.6.1</version></dependency><dependency><groupId>commons-discovery</groupId><artifactId>commons-discovery</artifactId><version>0.2</version></dependency>

也可以不引入pom文件,直接手动导入jar包
在这里插入图片描述

4、编写调用服务端代码

        String wsdl = "xxx/webservice/Service.jws?wsdl";try {org.apache.axis.client.Service service = new org.apache.axis.client.Service();URL url=new URL(wsdl);ServiceSoapBindingStub stub = new ServiceSoapBindingStub(url,service);// 有些webservice需要登录,登陆后才能进行一些操作,这个需要设置如下两个参数://1、 超时时间stub.setTimeout(1000 * 10);//2、 次数设置true,登录后才能保持登录状态,否则第二次调用ws方法时仍然会提示未登录。stub.setMaintainSession(true);//目标方法String s = stub.contractService(txt());System.out.println(s);System.out.println("====================== webservice调用结束 ======================");   } catch (AxisFault | MalformedURLException axisFault) {axisFault.printStackTrace();} catch (RemoteException e) {e.printStackTrace();}         

到这里就解决了。

这里做一些扩展,通常传入的参数都是xml格式的,有一种方法,在格式转换的时候,后台做字符拼接,大概是下面这种方式,但是我们传入的时候一定要包含头部信息也就是“<?xml version='1.0' encoding='UTF-8'?>”
其他标签都是看调用的服务端,他们的格式是如何规定的。

    public String test() {StringBuffer xmlnodes = new StringBuffer();xmlnodes.append("<?xml version='1.0' encoding='UTF-8'?>");xmlnodes.append("<ROOT>");xmlnodes.append("<STAFF_LIST>");xmlnodes.append("<OUTSOURCING_ID>"+"?"+"</OUTSOURCING_ID>\n" +"\t<OUTSOURCING_DEPT_NAME>"+"?"+"</OUTSOURCING_DEPT_NAME>\n" +"\t<OP_TYPE>"+"?"+"</OP_TYPE>\n");xmlnodes.append("</STAFF_LIST>");xmlnodes.append("</ROOT>");return xmlnodes.toString();}

有不对的地方还望指点,若能获得您的建议,倍感荣幸。


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

相关文章

wsimport生成wsdl代码

wsimport生成wsdl代码 1. webservice接口wsdl生成代码示例2. 打开以上链接&#xff0c;右键查看网页源代码3. 替换复制中的部分内容4. 将以下内容保存为xsd.xjb文件5. 将以下内容保存为jaxp.properties文件6. 在命令行中执行以下命令生成java代码 1. webservice接口wsdl生成代码…

java wsimport 调用_webService----wsimport调用方式

一、工具 1、myEclipse 2、jdk1.7 二、创建服务端 1、创建web Service Project 命名为TheService 2、创建class类ServiceHello.java&#xff0c;位于包com.zyj.service下&#xff0c;并编写供客户端调用的方法&#xff0c;即编译方法代码 3、编译&#xff0c;编译失败时请调整该…

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

一 使用wsimport命令生成webservice的客户端接口 1.1 wsimport命令工具 在我们安装的jdk的bin的bin文件夹中&#xff0c;有一个wsimport.exe&#xff0c;这个工具依据wsdl文件生成相应的类文件&#xff0c;然后用这些类文件&#xff0c;就可以像调用本地的类一样调用WebServic…

WebService入门(二)wsimport的使用

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

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

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

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

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

wsimport命令

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

人体感应模块

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

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

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

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

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

人体+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测温元件&#xff0c;并于一个高性能8位单片机相连&#xff0c;通过单总线与微处理器通信&#xff0c;只需要一根数据线。 在…

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

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

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

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

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

本人持续分享更多关于嵌入式和单片机的知识&#xff0c;如果大家喜欢&#xff0c;别忘点个赞加个关注哦&#xff0c;让我们一起共同进步 最近使用到人体感应模块HC-SR501&#xff0c;这个模块使用十分简单&#xff0c;看下面代码就可以看出了&#xff0c;而且应用广泛&#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以及人体红外传感器实现的人体感应灯&#xff0c;详细细节如下&#xff1a; 1. 实验元件 UNO 实验套装&#xff08;arduino控制板、USB数据线、面包板、跳线&#xff09;人体红外传感器1个led灯1个电阻&#xff08;220欧&#xff0c;1个&#xff09; 2. 实现…

人体感应模块stm32驱动

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

基于51控制的人体感应灯

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

人体感应(红外感应)

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