Cxf拦截器中获取当前请求的参数

Cxf拦截器中获取当前请求的参数

 

         有的时候我们的工程里面会有很多的Webservice服务,我们可能出于某种原因可能需要对每个请求实现特定的逻辑,比如说对参数的有效性进行校验,这种逻辑往往是通过Cxf的拦截器来实现的,这个时候就需要获取Webservice服务的当前请求参数。Cxf中用MessageContentsList来封装一次请求的所有参数,它是继承自java.util.ArrayList的。MessageContentsList提供了一个静态方法getContentsList(Message message)用于从Message中获取对应请求的参数。其核心实现代码如下。

 

    public static MessageContentsList getContentsList(Message msg) {

        List<Object> o = CastUtils.cast(msg.getContent(List.class));

        if (o == null) {

            returnnull;

        }

        if (!(oinstanceof MessageContentsList)) {

            MessageContentsList l2 = new MessageContentsList(o);

            msg.setContent(List.classl2);

            returnl2;

        }

        return (MessageContentsList)o;

    }

 

         所以通常我们需要对Webservice服务的请求参数进行统一处理时,我们会定义一个对应的拦截器,然后在拦截器的handleMessage方法中进行如下处理。

   @Override

   public void handleMessage(SoapMessage messagethrows Fault {

      //...

      //请求参数中包含的参数

      MessageContentsList list = MessageContentsList.getContentsList(message);

      //对请求参数进行处理

      //...

   }

 

(注:本文是基于Cxf2.7.6所写)

相关推荐
©️2020 CSDN 皮肤主题: 猿与汪的秘密 设计师:白松林 返回首页
实付 9.90元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值