1

org.apache.cxf.jaxrs.client.WebClient在使用 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.

提前致谢。

4

1 回答 1

0

这是我的坏事。XmlSigOutInterceptor 在执行 get 时不需要做任何事情,因为没有要签名的文档。所以拦截器正在开火,它马上就回来了。

对不起,噪音。

于 2013-03-12T16:06:38.747 回答