一:什么是WebServices
1.1 WebServices是应用程序组件
使用开放协议进行通信
是独立并可以自我描述
可通过使用UDDI来发现
可被其它应用程序使用
1.2: WebServices平台元素
SOAP(简单对象访问协议)
UDDI(它是一种目录服务)
WSDL(Web services描述语言)
二:dk开发WebServices
服务端实现
1 定义一个interfac,使用@WebService注解标注接口,@WebMethod注解标注方法
2 定义此接口的实现类,并使用@WebService注解标注
3 使用Endpoint(终端)类发布webservice
String address = "http://localhost:8080/myws";
Endpoint.publish(address, new MyServiceImpl());
4.1 测试服务
4.1 .1直接在浏览器中输入:
http://localhost:8080/myws?wsdl
4.1.2 使用Eclipse自带的工具进行测试
Launch the Web Services Explorer-->WSDL Page
注1:WSDL是什么?WSDL全名为:网络服务描述语言,它是Web Service的描述语言,它包含一系列描述某个web
service的定义
4.2 客户端实现
4.2.1 使用jdk的wsimport.exe(java_home\bin)工具生成客户端代码
shift+右键
wsimport -keep http://localhost:8080/myscore?wsdl
wsimport -keep E:\WeatherWS.xml
4.2.2 调用客户端代码完成
// 创建工厂对象
WebServiceImplService factory = new WebServiceImplService();
// 通过工厂对象创建WebServiceImpl对象
WebServiceImpl webServiceImpl = factory.getWebServiceImplPort();
//webservice相关网站:webxml
5. 案例:电话号码归属地查询
MobileCodeWS mobileCodeWS = new MobileCodeWS();
MobileCodeWSSoap mobileCodeWSSoap = mobileCodeWS.getMobileCodeWSSoap();
wsimport -keep http://ws.webxml.com.cn/WebServices/MobileCodeWS.asmx
cmd -->找到client1下的src路径 -->要解析的文件路径copy---->src下有文件包则解析成功(cn.com.webxml)
6:天气预报查询(与电话查询相似)
注意:①要先将WeatherWS.xml文件保存到本地 (wsimport -keep E:\WeatherWS.xml)
②解析的时候会解析失败 此时要将xml文件中包含的 <s:element ref="s:schema" />标签删掉(有三个)