webservice的注意事项
来源:互联网 发布:java法尔克 编辑:程序博客网 时间:2024/05/29 18:22
首先我们需要指导一个提供webservice服务的第三方网站:http://www.webxml.com.cn
例如:
查询服务地址:http://127.0.0.1:12345/weather?wsdl,即:使用说明书的地址,通过该地址,使用wsimport命令生成客户端调用该地址对应的服务端数据
所以说在上面的网站上面我们得到web一些服务数据,如天气、航班、手机号码归属地等等。
WSDL的说明书的作用:1、使用说明书的地址可以生产客户端代码,程序员只要编写客户端的调用代码即可
2、笼统的说是为了webservice客户端写代码的时候,参考wsdl说明书,找到相应的服务视图,和对应有哪些方法,
即:方便进行查找,来写客户端代码。
看wsdl说明书的流程:从下往上看,找到服务视图service标签----通过service里面的port标签里面的binding找到往上面的binding标签-------binding里面的type就是portType标签(porttype就是服务端的,客户端需要的接口类型)---------在往上找到porttype标签,里面的operation标签就是webservice服务端提供对外可以调用的方法。
portType有方法,调用webservice就是调用porttype的方法。
最终找到porttype,其中有方法,说明wsdl文档基本上完整。必须存在调用服务类及方法。
webservice的两种调用方法:
一、客户端开发的的第一种方法:
1、创建服务视图(即:wsdl中<service>标签对应的类),2、通过服务视图得到portType(接口类型),3、调用portType对应的operation的方法
二、客户端开发的第二种方法:使用jdk的service类调用webservice
webService的数据传输形式:
将java对象序列化成soap协议进行传输。使用TCP/IP Monitor监视Soap协议
三、webservice调用服务端的第三种方法,模拟http向webservice的服务端发送请求(soap协议是基于http协议的):
模拟一个http的客户端(相当于一个浏览器),客户端通过程序实现,向webservice的服务端发送soap协议(xml)。即:httpclient,
把请求的数据写成soap协议的形式,与浏览器的区别,httpclient不用webservice的客户端和借助wsdl的地址生成客户端代码。
例如:
抢票软件:不需要登陆12306网站,直接发送请求
lucence爬虫:模拟http请求,请求到网址上,得到请求的链接和内容
//soap协议内容,请求的 内容
private static String requestString(String cityName){
String xmlString = "<?xml version=\"1.0\" ?>" +
"<S:Envelope xmlns:S=\"http://schemas.xmlsoap.org/soap/envelope/\">" +
"<S:Body>" +
"<ns2:queryWeather xmlns:ns2=\"http://server.weather.jaxws.ws.itcast.cn/\">" +
"<arg0>"+cityName+"</arg0>" +
"</ns2:queryWeather>" +
"</S:Body>" +
"</S:Envelope>";
return xmlString;
}
soap协议要求post的方式,请求的数据是xml格式,模拟的http请求,不是浏览器中地址栏中的输入的请求,浏览器中输入的url的请求是get方式的请求
webservice使用的案例:
比如有多个系统,用户登录系统、房产信息系统都会使用到区域查询,我们就可以把区域查询提取出来,做一个webservice(服务)接口供各个系统调用。
各个系统就是webservice的服务端。
服务端:主要写两层:1、dao层,对数据库进行操作。2、service层,这里不需要对页面操作,所以不需要action层。
a、webservice的服务端其实很简单,这里在service层写一个SEI接口,在接口中写一个对数据库操作的查询的接口方法。
b、再写一个对SEI的实现类,使用@WebService进行注解即可,对接口的方法进行实现,再在服务端的项目中发布服务,写一个发布服务的类,对使用了@WebService的类对外发布服务。
使得其它系统,即也是webservice的客户端能够对webservice服务端注解类的相关的方法进行调用。
调用主要有三种方法:如:httpclient,就是上面介绍的三种方法。
webservice 中jaxws的常用注解
主要是在@webservice()注解里面加入各种属性的设置。比如:自己指定portType的名字
图片》》》》
1、当我们使用的服务类实现了多个接口,每个接口都有一个方法,该服务类的每一个实现方法都被发布成服务,即:portType中的operation。
但是我只需要其中一个实现的接口发布成服务,如何实现呢?
在@webservice的注解属性中加入endpointInterface="cn.itcast.ws.service.WeatherInterface2
指定哪个接口中方法要发布成webservice服务,接口中加上@webservice注解
2、当我们方法的传入参数在wsdl文档中不规范时,
图片》》》
wsdl中方法参数不规范的问题,xsd中有一个地址
解决方法:在注解类的实现类的方法中的参数前面使用,使用注解指定参数名字,@WebParam(name="cityName")
public @WebResult(name="result") List<WeatherModel> queryWeather(@WebParam(name="cityName") String cityName)
@WebResult(name="result")指定方法的返回值类型
3、注意一个问题,当@webservice注解的类里面的方法是public,默认就会发布服务,为private就不会发布服务。
问题:当@webservice注解的类里面的方法中的某个public方法,不想让他发不成public方法时候,该怎么做?
在方法前面加一个注解即可,
@WebMethod(operationName="queryWeatherList",exclude=true),operationName含义是改变发布服务的方法在wsdl的名字,exclude=true使该方法不发布成服务。
- webservice的注意事项
- Delphi7调用WebService的注意事项
- webservice注意事项
- 使用php webservice(SOAP)的注意事项
- 利用CXF发布restful WebService的注意事项
- GSoap 调用webservice的一些注意事项
- 调用外围系统的webservice服务注意事项
- pb12 开发 webservice 注意事项
- pb12 开发 webservice 注意事项
- pb12 开发 webservice 注意事项
- Restful webservice 注意事项
- pb12 开发 webservice 注意事项
- 天气预报webservice wsimport注意事项
- pb12 开发 webservice 注意事项
- webservice引用注意事项
- pb12 开发 webservice 注意事项
- ajax调用webservice注意事项
- Java 调用 .net Webservice的一些问题和注意事项
- 第34篇 IOS-WebRTC BUG处理(二)及分析加载函数
- 【STL】类型萃取(TypeTraits)
- okhttp请求回调封装文章推荐
- 去掉angularjs路由的#,node为服务器
- Android常用代码总结(一)
- webservice的注意事项
- 指数族分布-广义线性模型--softmax关系
- 《React-Native系列》19、 ListView组件之上拉刷新(iOS和Android通用)
- Java语言基础(七)—— 数组
- 阅读Hadoop 源代码最重要的就是明白rpc机制,client与master,master和slave的通信
- NavigationView_分离视图
- 《React-Native系列》20、 RN数据流之Flux概览
- Hibernate二级缓存
- 新手入门