0

我正在寻找一种在客户端将对象传递给我的 SOAPHandler 而不将我的 Port 对象转换为 BindingProvider 以获取请求上下文的方法。通常你会看到如下代码:

Map<String,Object> requestContext = ((BindingProvider)port).getRequestContext();
requestContext.put("key", object);

处理程序中的代码如下所示:

public boolean handleMessage(SOAPMessageContext context) {
    Boolean isRequest = (Boolean) context.get(MessageContext.MESSAGE_OUTBOUND_PROPERTY);

    if (isRequest) {
        // Do stuff to SOAP header based on "object"
    }
    return true;
}

我不喜欢强制转换,因为我使用 Spring 的 AOP 来包装来自客户端 Port 对象的调用,并且强制转换会导致错误。

4

1 回答 1

1

您使用的是 2.5.6 之前的 spring 版本吗?如果是这种情况,您可能只需要升级 spring。此更改日志显示他们在 2.5.6 版中添加了对 BindingProvider 接口的支持。

于 2012-11-13T16:44:29.670 回答