使用WebClient类(org.apache.cxf.jaxrs.client.WebClient
)时,我遇到了拦截器触发的问题。在我调用RESTful服务的方法中,我添加了一个拦截器以在out阶段执行。我故意提供了无效的属性,所以我可以看到拦截器失败,但该方法成功完成。
以下是我正在使用的代码:
private String callService2(String webServiceUrl) {
JAXRSClientFactoryBean bean = new JAXRSClientFactoryBean();
bean.setAddress(webServiceUrl);
// setup properties
Map<String, Object> properties = new HashMap<String, Object>();
properties.put("ws-security.signature.username", "client");
properties.put("ws-security.signature.properties",
"client_nonexistantfile.properties");
bean.setProperties(properties);
XmlSigOutInterceptor sigInterceptor = new XmlSigOutInterceptor();
bean.getOutInterceptors().add(sigInterceptor);
// use WebClient (or proxy) as usual
WebClient wc = bean.createWebClient();
TestInfoResponse response = wc.accept("application/xml").get(TestInfoResponse.class);
return response.getContents();
}
我希望XmlSigOutInterceptor
逻辑失败,因为属性文件不存在,但方法成功完成。添加XmlSigOutInterceptor
时我做错了什么。
提前致谢。
答案 0 :(得分:0)
这是我的坏事。执行get时,XmlSigOutInterceptor不需要执行任何操作,因为没有要签名的文档。因此拦截器正在开火,它刚刚立即返回。
对不起噪音。