2014-03-04 52 views
0

我的母语不是英语,我的英语很差,所以如果有任何不清楚的地方,我很抱歉。 我已经搜索,但它没有帮助。
我有一个使用cxf框架的web服务,我想使用拦截器拦截服务调用者传递的请求。我可以拦截请求,但我无法找出请求参数。cxf拦截器拦截请求,但我无法找到邮件中的请求参数

  1. 这里是我的服务接口:

    public int modCredenceForUser(@WebParam(name = "operatorId", mode = WebParam.Mode.IN) String operatorId, 
                @WebParam(name = "userCredenceVO", mode = WebParam.Mode.IN) Holder<UserCredenceVO> userCredenceVO, 
                @WebParam(name = "res", mode = WebParam.Mode.OUT) Holder<Response> res) 
    
  2. 这里是我的服务调用的代码部分:

    userCredenceVO = new UserCredenceVO(); 
        ...... 
        ...... 
        Holder<UserCredenceVO> userCredenceVOHolder = new Holder<UserCredenceVO>(userCredenceVO); 
        String operatorId = ServiceInvokeUtil.getOperatorId(); 
        int result = service.modCredenceForUser(operatorId, userCredenceVOHolder, res); 
    
  3. 这里是我的服务提供商的代码部分:

    public class AuthenticationInterceptor extends 
         AbstractPhaseInterceptor { 
        public AuthenticationInterceptor(){ 
         super(Phase.RECEIVE); 
        } 
        /* 
        @Override 
        public void handleFault(Message message) { 
         super.handleFault(message); 
        } 
        */ 
        public void handleMessage(Message message) { 
         ...... 
         ...... 
        } 
    
    } 
    

我想找出请求参数“userCredenceVO”,但我怎么能在消息中找到它。 这个问题困扰了我一天,任何帮助,我将不胜感激。

+0

非常感谢!@Karthik Prasad –

回答

0

的问题已经解决,正确的代码如下:

public class AuthenticationInterceptor extends 
     AbstractPhaseInterceptor<SoapMessage> { 

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

    @Override 
    public void handleFault(SoapMessage message) { 
     super.handleFault(message); 
    } 

    @Override 
    public void handleMessage(SoapMessage message) throws Fault { 
     Set _set = message.getContentFormats(); 
     Iterator classIterator = _set.iterator(); 
     while (classIterator.hasNext()) { 
      Class _class = (Class) classIterator.next(); 
      Object _obj = message.getContent(_class); 
     }  
    } 

} 

的_obj含有通过服务调用传递的请求参数。