CXF 拦截器获取方法信息和参数信息

1. 配置beans.xml

<cxf:bus>
  <cxf:inInterceptors>
   <ref bean="logInterceptor"/>
  </cxf:inInterceptors>
 </cxf:bus>
 
 <bean name="logInterceptor" class="com.sf.module.test.LogInterceptor"></bean>




2. 拦截器实现
package com.sf.module.test;

import java.lang.reflect.Method;
import java.util.List;

import org.apache.cxf.binding.soap.SoapMessage;
import org.apache.cxf.frontend.MethodDispatcher;
import org.apache.cxf.interceptor.Fault;
import org.apache.cxf.message.Exchange;
import org.apache.cxf.phase.AbstractPhaseInterceptor;
import org.apache.cxf.phase.Phase;
import org.apache.cxf.service.Service;
import org.apache.cxf.service.model.BindingOperationInfo;

public class LogInterceptor extends AbstractPhaseInterceptor<SoapMessage> {

 public LogInterceptor() {
  super(Phase.PRE_INVOKE);
 }

 @Override
 public void handleMessage(SoapMessage message) throws Fault {
  System.out.println(message);

  // 获取方法信息
  Exchange exchange = message.getExchange();
  BindingOperationInfo bop = exchange.get(BindingOperationInfo.class);
  MethodDispatcher md = (MethodDispatcher) exchange.get(Service.class).get(MethodDispatcher.class.getName());
  Method method = md.getMethod(bop);
  System.out.println(method);
 
  // 获取参数
  List<?> content = message.getContent(List.class);
  System.out.println(content);
 }
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值