学习webservice之cxf(6):cxf日志拦截器

在Client服务中的pom.xml文件中添加依赖

    <dependencies>
          <dependency>
            <groupId>org.apache.cxf</groupId>
            <artifactId>cxf-rt-frontend-jaxws</artifactId>
            <version>3.2.5</version>
        </dependency>
          <dependency>
            <groupId>org.apache.cxf</groupId>
            <artifactId>cxf-core</artifactId>
            <version>3.2.5</version>
        </dependency>
        <dependency>
            <groupId>org.apache.cxf</groupId>
            <artifactId>cxf-rt-transports-http-jetty</artifactId>
            <version>3.2.5</version>
        </dependency>
      </dependencies>

在Server服务中添加日志拦截器

package com.rg2.webservice.impl;

import javax.xml.ws.Endpoint;

import org.apache.cxf.interceptor.LoggingInInterceptor;
import org.apache.cxf.jaxws.JaxWsServerFactoryBean;

import com.rg2.webservice.HelloWorld;

public class Server {

    public static void main(String[] args) {
        System.out.println("web service start");
        HelloWorld implementor = new HelloWorldImpl();
        String address = "http://localhost/helloWorld";
//        Endpoint.publish(address, implementor);//jdk实现暴露webservice接口
        JaxWsServerFactoryBean factoryBean = new JaxWsServerFactoryBean();
        factoryBean.setAddress(address);//设置暴露地址
        factoryBean.setServiceClass(HelloWorld.class);//接口类
        factoryBean.setServiceBean(implementor);//设置实现类
        factoryBean.getInInterceptors().add(new LoggingInInterceptor());//添加in拦截器 日志拦截器
        factoryBean.getOutInterceptors().add(new LoggingInInterceptor());//添加out拦截器 日志拦截器
        factoryBean.create();//创建webservice接口
        System.out.println("web service started");
    }

}

在Client服务中添加日志拦截器

package com.rg2.webservice;

import java.util.List;

import org.apache.cxf.frontend.ClientProxy;
import org.apache.cxf.interceptor.LoggingInInterceptor;

public class Client {

    public static void main(String[] args) {
        HelloWorldService service = new HelloWorldService();
        HelloWorld helloWorldPort = service.getHelloWorldPort();
        org.apache.cxf.endpoint.Client client = ClientProxy.getClient(helloWorldPort);
        client.getInInterceptors().add(new LoggingInInterceptor());//添加in拦截器 日志拦截器
        client.getOutInterceptors().add(new LoggingInInterceptor());//添加out拦截器 日志拦截器

        MyRoleArray getroles = helloWorldPort.getroles();
        List<MyRole> roleList = getroles.item;
        for (int i = 0; i < roleList.size(); i++) {
            MyRole my = roleList.get(i);
            System.out.print(my.key + ":");
            for (Role role : my.value) {
                System.out.print(role.getId()+","+role.getRoleName());
            }
            System.out.println("===============");
        }
    }

}

原文地址:https://www.cnblogs.com/zhengyuanyuan/p/9277235.html

时间: 2024-08-01 16:23:51

学习webservice之cxf(6):cxf日志拦截器的相关文章

WebService框架CXF实战一自定义拦截器(五)

CXF已经内置了一些拦截器,这些拦截器大部分默认添加到拦截器链中,有些拦截器也可以手动添加,如手动添加CXF提供的日志拦截器.也可以自定义拦截器,CXF中实现自定义拦截器很简单,只要继承AbstractPhaseInterceptor或者AbstractPhaseInterceptor的子类(如AbstractSoapInterceptor)即可. 自定义权限认证拦截器 权限认证拦截器处理SOAPHeader中的认证信息,客户端在发起请求时在SOAPHeader中添加认证信息,服务端在接收到请求

基于CXF框架的webservice简单的SC两端出入拦截器实现。

开发工具:  ECLIPSE(EE) + CXF(2.5.9) (I)可以现在eclipse中使用JDK来创建webservice基础服务.(没有CXF框架的webservice) (1)新建一个java project. (命名为FirstWebService) 新建一个interface接口.改接口就是相当于webservice中的SEI. (在接口类定义前使用JDK自带webservice注释[email protected] SEI方法则是使用@WebMethod生命方法.) (2)在定

WebServices中使用cxf开发日志拦截器以及自定义拦截器

首先下载一个cxf实例,里面包含cxf的jar包.我下的是apache-cxf-2.5.9 1.为什么要设置拦截器? 为了在webservice请求过程中,能动态操作请求和响应数据, CXF设计了拦截器. 2.拦截器分类 1. 按所处的位置分:服务器端拦截器,客户端拦截器 2. 按消息的方向分:入拦截器,出拦截器 3. 按定义者分:系统拦截器,自定义拦截器 3.拦截器API Interceptor(拦截器接口) AbstractPhaseInterceptor(自定义拦截器从此继承) Loggi

构建基于CXF的WebService服务(3)-- 利用拦截器实现权限验证

CXF中的拦截器分为in拦截器和out拦截器,又有客户端拦截器和服务端拦截器. 拦截器使用流程:客户端(out)-> 服务端(in)->处理业务->服务端(out)->客户端(in),并不是每一步都需要拦截器.在这里我们用到的是客户端Out拦截器和服务端in拦截器.服务端in拦截器检查用户级权限,客户端out浏览器发送用户信息给服务端. 1.创建服务端验证 JaxWsServerFactoryBean或Endpoint都可以通过getInInterceptors方法,向WebSer

学习笔记_springmvc文件上传和拦截器

文件上传 用到这两个包 配置视图解析器:springmvc配置文件配置 <!-- id必须要是"multipartResolver" --> <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> <!-- maxUploadSize文件上传的最大值,单位是byte

struts2-权限拦截器、日志拦截器、execAndWait(进度条)拦截器配置

1.权限拦截器 package login; import javax.servlet.http.HttpServletResponse; import org.apache.struts2.ServletActionContext; import com.opensymphony.xwork2.ActionInvocation; import com.opensymphony.xwork2.interceptor.AbstractInterceptor; public class LoginI

SpringMVC学习(四)——处理器Handler和拦截器HandlerInterceptor

在使用springMVC的开发过程中,Handler(就是Controller)是我们需要手动开发的主要内容,注解的配置方式比较固定,可以限定请求方式,请求映射到方法级,基本可以满足我们的日常需求.所以这里主要记录基于xml配置方式的各种Handler. 这里引用开涛SpringMVC PDF中的一张图片: 这里学习一下最常用的集中实现方式: Controller:最顶层的接口,也是最简单的,重写handleRequest()即可. AbstractController:比较常用的一个接口,重写

Flume NG 学习笔记(八)Interceptors(拦截器)测试

版权声明:本文为博主原创文章,未经博主允许不得转载. 目录(?)[+] 拦截器主要是对事件的header信息信息操作,要么直接忽略他,要么修改他的数据 一.Event Serializers file_roll sink 和hdfs sink 都支持EventSerializer接口 1.1.Body Text Serializer Body TextSerializer,别名:text.这个拦截器将把事件的body部分写入到输出流中而不需要任何转换或者修改.事件的header将直接被忽略. 下

Ehcache学习(三)ehcache与springAOP拦截器实例

本次我们使用springAOP+ehcache结合来实现数据的缓存,我们可以 Cache 系统中 Service 或则 DAO 层的 get/find 等方法返回结果,如果数据更新( 使用Create/update/delete 方法), 则刷新 cache 中相应的内容. Aop中最常见的就是拦截器,那么我们首先需要创建的就是一个拦截器: ?  MethodCacheInterceptor <span style="font-family:Microsoft YaHei;font-siz