失效链接处理 |
彻底了解|利用Apache CXF框架开发WebService PDF 下载
本站整理下载:
相关截图:
主要内容:
1:WebService中支持的数据类型
WebService中几乎所有的数据类型都是支持的
基本的数据类型
引用的数据类型
2:CXF框架的使用
CXF框架:CXF就是一个WebService的框架、在生产环境中一般情况下我们都使用框架来做开发、这个框架简单的说就是将WebService的开发给简化了、而且还新增了拦截器
CXF框架的使用:代码不需要改变只是需要导入这个CXF的包就可以了
注意:导包
Project structure ----->libaries----->点击+找到包所在的文件夹----->Modles---->dependences---->找到他选中----->应用
3:拦截器的使用
需求:我们需要知道客户端传递给服务端的数据格式长啥样、同时也需要知道服务端接受到客户端的数据长啥样?
拦截器
客户端的出拦截器
客户端的入拦截器
服务端的出拦截器
服务端的入拦截器
要知道客户端传递给服务端的数据长啥样? 用客户端的出拦截器
要知道服务端接受到客户端的数据长啥样? 服务端的入拦截器
要知道数据长啥样的话在我们的CXF中提供了日志拦截器
实现功能
1:给客户端添加日志拦截器
//第一步:获取客户端的对象
Client client=ClientProxy.getClient(userService);
//第二步:找到拦截器列表
List<Interceptor<? extends Message>> outInterceptors = client.getOutInterceptors();
//添加日志拦截器
outInterceptors.add(new LoggingOutInterceptor());
客户端传递给服务端的数据的格式
Encoding: UTF-8
Content-Type: text/xml
Headers: {Accept=[*/*], SOAPAction=[""]}
Payload: <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"><soap:Body><ns2:getStr xmlns:ns2="http://server.qf.com/"><arg0>美女</arg0></ns2:getStr></soap:Body></soap:Envelope>
2:给服务端添加入拦截器
EndpointImpl endPoint = (EndpointImpl) Endpoint.publish(PATH, new UserService());
//看看有木有和日志相关的呢?
List<Interceptor<? extends Message>> inInterceptors = endPoint.getInInterceptors();
//添加日志的入拦截器
inInterceptors.add(new LoggingInInterceptor());
服务器端接受到的信息如下
Address: http://127.0.0.1:8888/Day1807_WebService_Server_02/bobo?wsdl
Encoding: UTF-8
Http-Method: GET
Content-Type: text/xml
Headers: {Accept=[*/*], Cache-Control=[no-cache], connection=[keep-alive], content-type=[text/xml], Host=[127.0.0.1:8888], Pragma=[no-cache], User-Agent=[Apache CXF 2.5.9]}
4:完成一个需求:开发一个带有权限认证的WebService
举例:比如说我需要 只有用户名是xiaobobo 密码是 123那么这个WebService才允许访问
逻辑(选择客户端的出拦截器 来添加如下内容)
|