cxf拦截器拦截了请求,但我在消息中找不到请求参数



我的母语不是英语,我的英语很差,所以如果有什么不清楚的地方,我很抱歉。我找过了,但无济于事
我有一个使用cxf框架的web服务,我想使用一个拦截器来拦截服务调用程序传递的请求。我可以拦截请求,但找不到请求参数。

  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",但如何在消息中找到它。这个问题困扰了我一天,如果有任何帮助我都会感激。

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

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包含由服务调用程序传递的请求参数。

最新更新