我正在使用CXF 3.0.4,我喜欢在调用soap客户端之前将一些参数传递给出站的intercptors(或出站链)。我发现了这个问题Passing data (transactionId) to CXF interceptors但是,如果只使用CXF,是不是有一些更清洁的解决方案?
由于
答案 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");
//...
}