文档章节

webservice客户端拦截器

xpttxsok
 xpttxsok
发布于 2016/05/02 20:17
字数 381
阅读 110
收藏 2
/**
 * @author xp
 * @Title: ClientMain.java
 * @Package test
 * @Description: TODO
 * @date 2016年5月1日 下午6:39:44
 * @version V1.0  
 */
package test;

import java.util.List;

import org.apache.cxf.endpoint.Client;
import org.apache.cxf.feature.LoggingFeature;
import org.apache.cxf.frontend.ClientProxy;
import org.apache.cxf.interceptor.LoggingInInterceptor;
import org.apache.cxf.interceptor.LoggingOutInterceptor;

import com.xp.cn.ws.Cat;
import com.xp.cn.ws.Entry;
import com.xp.cn.ws.IWebServiceDemo;
import com.xp.cn.ws.StringCat;
import com.xp.cn.ws.User;
import com.xp.cn.ws.impl.WebServiceImpl;

/**
 * @author xp
 * @ClassName: ClientMain
 * @Description: TODO
 * @date 2016年5月1日 下午6:39:44
 *
 */
public class ClientMain {
	public static void main(String[] args) {

		//继承Service的类当成工厂使用
		WebServiceImpl webServiceImpl = new WebServiceImpl();
		//此处返回的只是远程webservice的代理
		IWebServiceDemo webService = webServiceImpl.getWebServiceImplPort();
		
		
		//客户端拦截器写在调用服务端方法之前
		//org.apache.cxf.frontend.ClientProxy.getClient();
		Client client = ClientProxy.getClient(webService);
		client.getInInterceptors().add(new LoggingInInterceptor());
		client.getOutInterceptors().add(new LoggingOutInterceptor());
		//客户端拦截器写在调用服务端方法之前
		
		String sayHello = webService.sayHello("xp");
		System.out.println(sayHello);

//		User user = new User();
//		user.setName("jaychou");
//		user.setPassword("jaychou");
//		List<Cat> catsByUser = webService.getCatsByUser(user);

//		for (Cat cat : catsByUser) {
//			System.out.println(cat.getName());
//			System.out.println(cat.getColor());
//		}

//		StringCat allCats = webService.getAllCats();
//		for (Entry cats : allCats.getEntries()) {
//			System.out.println(cats.getKey() + "==" + cats.getValue().getName());
//		}

	}
}

控制台的日志信息如下:

五月 02, 2016 8:16:20 下午 org.apache.cxf.service.factory.ReflectionServiceFactoryBean buildServiceFromWSDL
信息: Creating Service {http://impl.ws.cn.xp.com/}webServiceImpl from WSDL: http://127.0.0.1/XXX?wsdl
五月 02, 2016 8:16:20 下午 org.apache.cxf.services.webServiceImpl.WebServiceImplPort.IWebServiceDemo
信息: Outbound Message
---------------------------
ID: 1
Address: http://127.0.0.1/XXX
Encoding: UTF-8
Http-Method: POST
Content-Type: text/xml
Headers: {Accept=[*/*], SOAPAction=[""]}
Payload: <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"><soap:Body><ns2:sayHello xmlns:ns2="http://ws.cn.xp.com/"><arg0>xp</arg0></ns2:sayHello></soap:Body></soap:Envelope>
--------------------------------------
五月 02, 2016 8:16:20 下午 org.apache.cxf.services.webServiceImpl.WebServiceImplPort.IWebServiceDemo
信息: Inbound Message
----------------------------
ID: 1
Response-Code: 200
Encoding: UTF-8
Content-Type: text/xml;charset=UTF-8
Headers: {content-type=[text/xml;charset=UTF-8], Server=[Jetty(8.1.14.v20131031)], transfer-encoding=[chunked]}
Payload: <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"><soap:Body><ns2:sayHelloResponse xmlns:ns2="http://ws.cn.xp.com/"><return>你好xpMon May 02 20:16:20 CST 2016</return></ns2:sayHelloResponse></soap:Body></soap:Envelope>
--------------------------------------
你好xpMon May 02 20:16:20 CST 2016


© 著作权归作者所有

xpttxsok
粉丝 7
博文 187
码字总数 109478
作品 0
徐汇
程序员
私信 提问
【CXF】- 拦截器 Interceptor

CXF拦截器 拦截动态操作请求和响应数据 拦截器分类 位置:服务器端拦截器,客户端拦截器 消息方向:入拦截器 出拦截器 定义者:系统拦截器 自定义拦截器:LoggingInInteceptor ①:创建webse...

ZeroneLove
03/02
24
0
CXF学习笔记(4)-HelloWorld!-安全认证

前3节中介绍了如何发布一个webservice和客户端如何调用,一切貌似都正常,但存在着安全隐患-这样导致任意的客户端都可以调用我们的webservice服务,接下来将介绍如何采用基于用户名和密码认证...

鉴客
2011/08/18
4.5K
4
cxf 拦截器

cxf 框架 搭建的webservice 客户端 配置了 outInterceptor 消息就发不到server 就超时报错。去掉这个拦截器 就好使了。。。。 但是这个拦截器 也没看出什么问题 。 流的问题? client端流没关...

秋痕
2017/12/23
95
2
CXF 入门:创建一个基于SOAPHeader的安全验证(CXF拦截器使用)

下面具体的webservice实现类直接用的是上面的,这里不再说明 CXF拦截器使用,创建一个使用SOAPHeader的安全验证 xml格式: soap:Header </soap:Header> 一,首先在服务端创建一个拦截器(被调用...

闪电
2015/05/15
186
0
WebService工作原理以及SOAP简介

1.整体结构 2.一个Web Service客户端,顾名思义是和一个Web Service服务器进行交互。 下面是一个Web Service客户端调用Web Service的基本过程。 --> 构造SOAP请求消息(将本地数据对象转换为...

杭州_周陶忠
2013/09/10
804
0

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周六乱弹 —— 不要在领导修风扇的时候打开电扇

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @巴拉迪维 :《Whats Up》 主唱妹子 Lina Perry 的嗓音实在太有力了,收放自如的自信才能唱出这么优秀的歌吧!#今日歌曲推荐# 《Whats Up》-...

小小编辑
今天
11
0
SpringBoot集成Elasticsearch并进行增删改查操作

一、创建工程 使用IntelliJ创建SpringBoot工程 SpringBoot版本为2.0.4 ElasticSearch为5.6.10 删掉蓝框中的文件(如上) 最后我们的目录结构(如下) 下面pom文件主要修改的是把spring boot从Int...

一字见心
今天
5
0
x001-版本介绍

python版本介绍 目前有2 和 3 有很多企业用的代码是2版本,随着技术的发展,以后用3的会成为大趋势 python3的安装 yum -y install wget gcc zlib-devel bzip2-devel openssl-devel ncurses-d...

侠客行之石头
今天
5
0
聊聊rocketmq的TransientStorePool

序 本文主要研究一下rocketmq的TransientStorePool TransientStorePool rocketmq-all-4.6.0-source-release/store/src/main/java/org/apache/rocketmq/store/TransientStorePool.java publi......

go4it
昨天
6
0
笔记

场外借贷, 质押 ,托管, 永续合约. 场外借贷,n签合同. 新功能 证券交易组负责中信证券机构及个人投资交易相关系统,服务机构及个人投资客户, 涉及到两融、期权、 期货、做市等境内境外创新业...

MtrS
昨天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部