• (五)CXF之添加拦截器


    一、需求分析

    • 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()+" "+r.getRoleName()); } System.out.println("------------------"); } } }

      2.3  测试

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

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

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

  • 相关阅读:
    Win32编程day11 学习笔记
    Win32编程day06 学习笔记
    Win32编程day15 学习笔记
    Win32编程day12 学习笔记
    Win32编程day09 学习笔记
    Win32编程day07 学习笔记
    Win32编程day10 学习笔记
    生命周期
    组件中的data为什么不是一个对象而是一个函数?
    asp.net Request.ServerVariables 各参数说明集合
  • 原文地址:https://www.cnblogs.com/shyroke/p/7966148.html
Copyright © 2020-2023  润新知