一、需求分析

  • webService中的拦截器类似于servlet的Filter过滤器。一般用于调用服务前后先调用拦截器的方法。

二、案例

  • 本章案例是基于上一章节的基础上添加拦截器的

  2.1  服务端添加拦截器

ublic class PublishMain {
public static void main(String[] args) { String address="http://localhost:3333/login";
JaxWsServerFactoryBean factoryBean=new JaxWsServerFactoryBean();
factoryBean.setAddress(address);
factoryBean.setServiceClass(ILogin.class);
factoryBean.setServiceBean(new Login());
/**
* 添加In拦截器 日志拦截器
* 添加Out拦截器 日志拦截器
*/
factoryBean.getInInterceptors().add(new LoggingInInterceptor());
factoryBean.getOutInterceptors().add(new LoggingOutInterceptor());
factoryBean.create();
System.out.println("服务发布......."); }
}

  2.2  在客户端添加拦截器:必须引入cxf的jar包

public class Client {
public static void main(String[] args) {
ILogin login=new ILoginService().getILoginPort(); org.apache.cxf.endpoint.Client client=ClientProxy.getClient(login);   /**
* 添加In拦截器 日志拦截器
* 添加Out拦截器 日志拦截器
*/ client.getInInterceptors().add(new LoggingInInterceptor());
client.getOutInterceptors().add(new LoggingOutInterceptor()); MyRoleArray roles=login.getRoles();
List<MyRole> roleList= roles.item;
for(MyRole role:roleList) {
System.out.println(role.getKey());
for(Role r:role.getValue()) {
System.out.println(r.getId()+"\t"+r.getRoleName());
}
System.out.println("------------------");
}
}
}

  2.3  测试

  • 上面的配置已经把拦截器添加好了,当发布服务后,客户端执行后,首先,查看客户端的控制台

 由此可见,客户端是先进后出(先发送请求再接收数据)。

  • 再查看服务端的控制台,可见服务端是先进后出。

(五)CXF之添加拦截器的更多相关文章

  1. (七)CXF添加拦截器

    今天开始讲下拦截器,前面大家学过servlet,struts2 都有拦截器概念,主要作用是做一些权限过滤,编码处理等: webservice也可以加上拦截器,我们可以给webservice请求加权限判 ...

  2. 使用CXF为webservice添加拦截器

      拦截器分为Service端和Client端 拦截器是在发送soap消息包的某一个时机拦截soap消息包,对soap消息包的数据进行分析或处理.分为CXF自带的拦截器和自定义的拦截器 1.Servi ...

  3. CXF添加拦截器和自定义拦截器

    前面讲了如何采用CXF开发webservice,现在来讲如何添加拦截器和自定义拦截器. 服务端代码: HelloWorld implementor=new HelloWorldImpl(); Stri ...

  4. (八)CXF之用spring添加拦截器

    一.案例 本章案例是基于CXF之自定义拦截器基础之上改造的,目的是在服务端中用spring添加拦截器 配置web.xml <?xml version="1.0" encodi ...

  5. WS之cxf的权限拦截器应用

    一.服务器端: 1.权限判断: package cn.tdtk.ws.interceptor; import java.util.List; import org.apache.cxf.binding ...

  6. CXF对Interceptor拦截器的支持

    前面在Axis中介绍过Axis的Handler,这里CXF的Interceptor就和Handler的功能类似.在每个请求响应之前或响应之后,做一些事情.这里的Interceptor就和Filter. ...

  7. spring boot 添加拦截器

    构建一个spring boot项目. 添加拦截器需要添加一个configuration @Configuration @ComponentScan(basePackageClasses = Appli ...

  8. javaweb添加拦截器

    js请求后台代码添加拦截器: package com.ctzj.biz.isale.deploy.controller; import java.io.IOException; import java ...

  9. CXF实战之拦截器Interceptor(四)

    拦截器(Interceptor)是CXF功能最基本的扩展点,能够在不正确核心模块进行改动的情况下.动态加入非常多功能.拦截器和JAX-WS Handler.Filter的功能相似,当服务被调用时.就会 ...

随机推荐

  1. Maven多镜像配置

    Maven阿里云镜像相信国内用得是很爽的,但有时候,一些版本的包明明可以在http://mvnrepository.com上搜索到.但你确实下载不来... 废话不多,settings.xml多镜像配置 ...

  2. 在基于acpi的linux系统上如何检查当前系统是否支持深度睡眠?

    答: 执行以下命令: # dmesg|grep -i acpi |grep -i supports (S3表示支持深度睡眠) ACPI: (supports S0 S1 S3 S4 S5)

  3. int 和String之间的相互转换

    int ---> String 1. 和 "" 进行拼接 2. 使用String类中的静态方法valueOf: public static String valueOf(in ...

  4. 置BAT批处理窗口显示颜色

    置BAT批处理窗口显示颜色 摘自:https://blog.csdn.net/tp7309/article/details/53450131 2016年12月04日 01:08:33 亦游 阅读数:1 ...

  5. SSM配置基于注解AOP

    pom.xml <dependency> <groupId>org.springframework</groupId> <artifactId>spri ...

  6. VL10B 采购订单转DN

    传入采购订单项目建交货单 FUNCTION zmmfmXXXX. *"------------------------------------------------------------ ...

  7. tk.mybatis 报错:tk.mybatis.mapper.MapperException: tk.mybatis.mapper.MapperException: java.lang.StringIndexOutOfBoundsException: String index out of range: -1

    org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'apiLogMapper ...

  8. sql的游标用法举例(Cursor)

    sql的游标用法举例 ), ) Declare authors_cursor Cursor For Select Name,TrueName From Account Open authors_cur ...

  9. Python3之高阶函数filter

    Python内建的filter()函数用于过滤序列 和map()一样,filter()也接收一个函数和一个序列.和map()不同的是,filter()把传入的函数依次作用于每个元素,然后根据返回值是T ...

  10. iOS-UIToolbar与UISearchBar

    组件_ UIToolbar  /** 1. 顶部toolbar 2. TextField可以以UIBarButtonItem的自定义视图的方式加入toolbar 3. 三个按钮 4. 将UIBarBu ...