【客户端特点】
支持面向对象开发。
客户端功能调用webService,首先得知道WebService的地址。
一般情况下,只要知道了wsdl的地址,就可以知道WebService的地址。
我们上一篇博客设计的服务端的本地天气查询服务的地址:http://127.0.0.1:12345/weather?wsdl
【查看WSDL】
WebService发布成功,通过WSDL查看WebService发布的正确性。
1.在浏览器地址栏输入http://127.0.0.1:12345/weather?wsdl
2.WSDL不是WebService,只是获取一个用于描述WebService的说明文件。
3.wsdl-WebServiceDescriptionLanguage是以XML文件形式来描述WebService的"说明书",有了WSDL这个"说明书",我们才可以知道如何使用或者调用对应的服务。
【阅读WSDL的流程】
1.找到<service> ------> 2.找到<binding> -----> 3.找到portType(即服务端点)
【Wsimport介绍】
wsimport是JDK自带的WebService客户端工具,可以根据wsdl文档生成客户端调用代码(Java代码)。当然,无论服务器端的WebService用什么语言写的,都可以生成调用WebService的客户端代码,服务端通过客户端代码调用WebService服务。
【Wsimport常用参数】
wsimport.exe位于 JAVA_HOMEin目录下
常用参数:
-d <目录> 将生成 .class 文件
-s <目录> 将生成 .java文件
-p <生成的新包名> 将生成的类放在指定的包下
【通过Wsimport生成客户端注意事项】
1.可以通过 java -version查看自己的JDK版本,要注意jdk1.6.0_13以后的版本支持javaws2.1
2.要提前在eclipse中建立一个空的java工程,用来存放通过Wsimport生成的客户端代码。
3.要通过cmd的目录命令进入该java该工程的src目录。
4.生成完成后,刷新eclipse该工程,src下会出现生成好的客户端代码,只要将这些代码拷入到对应的客户端工程即可使用。
【使用wsimport生成WebService的客户端调用代码】
1.首先新建一个WsimportProject,并查看工程的路径
2.然后进入该工程的src目录下
3.使用“ wsimport -s . http://127.0.0.1:12345/weather?wsdl ” 命令来生成客户端代码(注意 "."的前后有空格)。
注意:运行该命令成功的前提之一是 此时WebService服务是运行中的!!
下图是运行成功的情况
4.刷新Eclipse对应的工程,可以看到生成了对应的客户端调用代码
5.将该代码拷贝至我们的客户端工程中,建好的工程截图如下:
6.客户端的WeatherClient.java代码,其中调用了生成的客户端中的类
【运行结果】
(前提是服务端已经开启!!!)
1.查看客户端
2.查看服务端
【方式二:使用JDK的service类调用WebService】