我的母语不是英语,我的英语很差,所以如果有什么不清楚的地方,我很抱歉。我找过了,但无济于事
我有一个使用cxf框架的web服务,我想使用一个拦截器来拦截服务调用程序传递的请求。我可以拦截请求,但找不到请求参数。
-
这是我的服务接口:
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)
-
这是我的服务调用程序代码的一部分:
userCredenceVO = new UserCredenceVO(); ...... ...... Holder<UserCredenceVO> userCredenceVOHolder = new Holder<UserCredenceVO>(userCredenceVO); String operatorId = ServiceInvokeUtil.getOperatorId(); int result = service.modCredenceForUser(operatorId, userCredenceVOHolder, res);
-
这是我的服务提供商代码的一部分:
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包含由服务调用程序传递的请求参数。