根据wsdl生成服务端代码

场景描述

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

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

请你们铭记查看wsdl文件的顺序是从下往上看的,否则,你会看懵逼的。
web

第一步:肯定接口的名称

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

也就是说若是你要根据wsdl文件建立服务端的话就须要你去建立一个名字为:IHelloWord的接口。
url

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

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

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

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

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

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

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

3:找到message中对应


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

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

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

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

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


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

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

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

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

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

相关文章
相关标签/搜索