CXF 3.0.4 SOAP客户端拦截器传递参数

时间:2015-03-25 08:51:08

标签: java web-services soap cxf interceptor

我正在使用CXF 3.0.4,我喜欢在调用soap客户端之前将一些参数传递给出站的intercptors(或出站链)。我发现了这个问题Passing data (transactionId) to CXF interceptors但是,如果只使用CXF,是不是有一些更清洁的解决方案?

由于

1 个答案:

答案 0 :(得分:3)

所以我能够在客户端调用之前将参数传递给拦截器:

Client client = ClientProxy.getClient(targetClient);
client.getRequestContext().put("my-object", myObject);

基本上你只需要用 org.apache.cxf.endpoint.Client 包装你的端口然后把参数放到requestContext

并在Interceptor中获取如下参数:

public void handleMessage(Message message) throws Fault {    
    Object obj = message.get("my-object");
    //...
}