根据wsdl生成服务端代码

场景描述

最近在和一家公司做业务接口对接,由他们那边回调我们这边,对方直接扔过来一个webservice的wsdl文件,让我们按照他们的规范来做webservice服务,
大多数的对接应该是我们创建完服务端的webservice服务,让其他公司根据我们的wsdl文件去开发客户端,但是,大公司就是这样,必须要按照他们的规范来。
那问题来了,怎么根据wsdl文件创建服务端呢?

查看wsdl文件的顺序是从下往上

请大家铭记查看wsdl文件的顺序是从下往上看的,不然,你会看懵逼的。

第一步:确定接口的名称

service节点上的name属性值就是这个接口类的名称;

也就是说如果你要根据wsdl文件创建服务端的话就需要你去创建一个名字为:IHelloWord的接口。

第二步:确定接口中都有哪些方法以及方法的名称

找binding节点下的operation子节点中的name属性值

一个operation节点就代码一个方法,也就是在接口中声明几个方法。

第三步:确定接口中方法的参数类型,顺序

假设我要找sayHello方法的参数类型和顺序;

1:找出binding节点对应的porttype节点

2:找出porttype中每一个operation中的input和output对应的message

3:找到message中对应


从上面圈住的部分可以看出来:
sayHello方法有两个参数,第一个参数的类型为String,第二个参数的类型为int。
可以对比一下接口中的方法:

第四步:找出这个服务类中方法的返回值类型

1:找出这个方法所在的porttype节点

2:找出这个porttype中operation中的output指向的message节点

3:找到tyeps节点下name属性值为sayHelloResponse的element节点


从上图中圈住的部分就可以看出,这个返回值为String类。
对比java代码;

第五步:确定对外提供服务的url地址

service中的address节点中有一个location的地址就是对外提供调用的地址

这里的url的第一级目录和二级目录会影响我们的配置;
一级目录影响的是:web.xml中监听器的匹配规则

二级目录影响的是:注册webservice服务的时候指定的名称

posted @   王森  阅读(29456)  评论(4编辑  收藏  举报
编辑推荐:
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· 展开说说关于C#中ORM框架的用法!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
点击右上角即可分享
微信分享提示