CXF 3.0.4 SOAP客户端拦截器传参

CXF 3.0.4 SOAP client interceptors pass parameters

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

谢谢

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

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");
    //...
}