webservice
Apache CXF官网:点击打开链接
Apache CXF = Celtix + Xfire
webservice主要用来跨平台和跨语言
1.webservice中的几个概念
SOAP协议
一个基于XML的可扩展消息信封格式,需同时绑定一个传输协议。这个协议通常是HTTP或HTTPS、SMTP、XMPP。
客户端与webservice交互的数据格式是xml.
soap协议的版本:
1.1 ---- jdk支持
1.2 ---- 框架可支持
WSDL
一个XML格式文档,用以描述服务端口访问方式和使用协议的细节。
wsdl文档中描述了web服务的地址,服务类的名字,暴露的方法,方法的参数,类型,以及返回。
所以通过wsdl文档就能知道怎么来调用发布的web服务。就相当于是一个"web服务说明书"
一个用来发布和搜索WEB服务的协议,应用程序可借由此协议在设计或运行时找到目标WEB Service。
2.Eclipse自带的工具:
WebServiceExplorer
可使用myeclipse自带的WebServiceExplorer查看交互的xml信息。
TCP/IP monitor
但WebServiceExplorer并不能看到http头,所以可以使用TCP/IP monitor查看请求头信息。
TCP/IP monitor相当于一个代理服务器,截取客户端发送给服务器的请求。
配置TCP/IP monitor
本地接口:指定TCP/IP monitor的端口,随便指定一个四位的。
monitor
host name
port:服务类的端口
type:选择TCP/IP
超时:默认
启动TCP/IP monitor
点击start启动。
使用TCP/IP monitor
如图,输入地址
注意:这里输入的端口是TCP/IP monior的端口,而不是服务类的端口。因为我们使用TCP/IP monitor充当代理服务器,它会监视拦截到请求。
点击go。
列出所有暴露出的方法。
如果方法需要接收参数,如图中的 sayHi,则可点击右侧Body中的Add,然后在输入框中填写需要传入的参数。
点击go,查看控制台有输出结果hello kitty.(这是调用了服务端的方法后的返回值)
点击state右上角的source连接,查看请求的信息和服务端响应的信息。
同时可以查看到TCP/IP monitor拦截到的请求信息和服务端返回信息
3.远程调用Demo
webXml网站:点击打开链接
以下以其中的手机号码查询为例,来实现调用网上已发布的web服务。
wsimport工具
使用JDK自带的wsimport工具来生成客户端代码。
只需要复制WSDL后面的连接地址,在cmd控制台,输入如下的命令即可
wsimport -s . -p remote http://webservice.webxml.com.cn/WebServices/MobileCodeWS.asmx?wsdl
说明:wsimport和wsdl2java工具都可以,但wsdl2java工具是基于jdk7的。见说明:wsdl2java工具
其中-s:编译后会生成源代码,包括java代码和class文件
以上命令执行后,cmd控制台会提示genarating code 和compile code,若没有错误提示则表示编译成功。
假设当前路径为d:\,则进入d盘下,会发现多了一个文件夹remote,打开该文件夹后发现生成了一些java代码和class文件。
这正是我们所需要的。我们接下来就可以在自己的工程中远程调用这些类了。
<?xml version="1.0" encoding="utf-8"?> <soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Body> <getMobileCodeInfo xmlns="http://WebXml.com.cn/"> <mobileCode>string</mobileCode> <userID>string</userID> </getMobileCodeInfo> </soap:Body> </soap:Envelope>
未完
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。