根据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服务的时候指定的名称
根据wsdl生成服务端代码的更多相关文章
- 根据wsdl,apache cxf的wsdl2java工具生成客户端、服务端代码
根据wsdl,apache cxf的wsdl2java工具生成客户端.服务端代码 apache cxf的wsdl2java工具的简单使用: 使用步骤如下: 一.下载apache cxf的包,如apac ...
- openssl实现双向认证教程(服务端代码+客户端代码+证书生成)
一.背景说明 1.1 面临问题 最近一份产品检测报告建议使用基于pki的认证方式,由于产品已实现https,商量之下认为其意思是使用双向认证以处理中间人形式攻击. <信息安全工程>中接触过 ...
- [原创]DELPHI木马DIY之生成服务端
文章作者:上帝的禁区信息来源:邪恶八进制信息安全团队(www.eviloctal.com)DELPHI木马DIY之生成服务端 我在这里就生成简单的服务端,为什么不先讲服务端的隐藏?因为我觉得生成服 ...
- Cxf 自动生成客户端服务端代码
第一步: 下载apache-cxf安装包.并安装. 第二步: 配置cxf的环境变量. CXF_HOME = "CXF安装路径". 例如:F:\apache-cxf-2.1.2 在P ...
- 使用Jacoco统计服务端代码覆盖情况实践
一.背景 随着需求的迭代,需求增加的同时,有可能会伴随着一些功能的下线.如果不对系统已经不用的代码进行梳理并删除不需要的代码,那么就会增加系统维护成本以及理解成本.但经历比较长的迭代以及系统交接,可能 ...
- axis根据wsdl生成java客户端代码
根据wsdl生成java客户端代码有多个方法,其中使用axis生成的代码比较友好,也是经常用的一种方法.首先下载axis jar包:axis-bin-1_4.zip 官方地址:http://ws.Ap ...
- 使用 git post-receive 钩子部署服务端代码
在 git 中提交服务器源码的时候,如果能够直接更新到测试服务器,并且重启服务使其生效,会节省懒惰的程序员们大量的时间. git 的 Server-side hook (服务端钩子/挂钩)可以用来做件 ...
- Socket通信客户端和服务端代码
这两天研究了下Socket通信,简单实现的客户端和服务端代码 先上winfrom图片,客户端和服务端一样 服务端代码: using System; using System.Collections.G ...
- IOS IAP APP内支付 Java服务端代码
IOS IAP APP内支付 Java服务端代码 场景:作为后台需要为app提供服务,在ios中,app内进行支付购买时需要进行二次验证. 基础:可以参考上一篇转载的博文In-App Purcha ...
随机推荐
- 「SLYZ Online Judge#74 Be」
只有学校里的电脑才能看的题目 昊哥从牛客搬的,懒得找原题了 题意就是多组询问,每次询问一条树上路径,将这条路径上的点拿下来做\(0/1\)背包,求使得点权和为\(K\)的倍数的方案有几种 \(n< ...
- redis 哈希数据类型简单操作(实现购物车案例)
这里不累赘如何安装redis和php redis扩展,主要熟悉调用redis哈希数据类型 简单方法操作如下 1:hSet 2:hGet 4:hDel 5:hGetAll 4:hExists 5:hI ...
- 四. 引入unittest单元测试框架
1. 安装 SeleniumIDE(firefox) (1)下载地址:https://addons.mozilla.org/en-US/firefox/addon/selenium-ide/ (2 ...
- Linux下安装Qt5.6.1
我的环境:CentOS 6.7 64位. 1.下载Qt: Qt版本有很多,自己比较菜,希望安装的过程越简单越好,感觉比较新的版本会好安装一些,5.4版本还要更新 /usr/lib64/libstdc ...
- h5中video的一些坑
最近我们的项目做了有关短视频的功能,当然视频的合成还是在客户端来完成,涉及到前端页面的部分就是要有一个H5的落地页,这个页面上要有对视频进行播放.起初我觉得这事儿还是挺简单的,不就是在页面上放一个&l ...
- ASP.NET Core 2.0中如何更改Http请求的maxAllowedContentLength最大值
Web.config中的maxAllowedContentLength这个属性可以用来设置Http的Post类型请求可以提交的最大数据量,超过这个数据量的Http请求ASP.NET Core会拒绝并报 ...
- IOS开发,摄像头对焦状态监控
camera autofocus observer? I find the solution for my case to find when autofocus starts / ends. It' ...
- 深入浅出爬虫之道: Python、Golang与GraphQuery的对比
深入浅出爬虫之道: Python.Golang与GraphQuery的对比 本文将分别使用 Python ,Golang 以及 GraphQuery 来解析某网站的 素材详情页面 ,这个页面的特色是具 ...
- oracle在线迁移同步数据,数据库报错
报需要升级的错误,具体处理步骤如下: 一.错误信息 SQL> alter database open ;alter database open resetlogs*ERROR at line 1 ...
- Spring + Mybatis应该如何配置
### 1. MYBATIS简介 MYBATIS是持久层框架,大大的简化了持久层开发. 当使用MYBATIS框架时,开发人员不必再编写繁琐的JDBC代码,只需要定义好每个功能对应的抽象方法与需要执行的 ...