如何在WebSphere 8.5中将HTTP标头添加到JAX-WS请求中?

时间:2015-11-09 21:27:58

标签: java websphere jax-ws websphere-8

我正在尝试使用WebSphere 8.5.5.2上的JAX-WS在出站SOAP请求上设置自定义标头。以下方法中的BindingProvider是通过JNDI获取的,用于使用@ServiceRef注释声明的服务。

void setHeader(BindingProvider provider, String name, String value) {
    Map<String, Object> context = provider.getRequestContext();
    Map<String, List<String>> headers = null;

    if (context.containsKey(MessageContext.HTTP_REQUEST_HEADERS)) {
        headers = (Map<String, List<String>>)
                   context.get(MessageContext.HTTP_REQUEST_HEADERS);
    }

    if (headers == null) {
        headers = new HashMap<String, List<String>>();
        context.put(MessageContext.HTTP_REQUEST_HEADERS, headers);
    }

    headers.put(name, Arrays.asList(value));
}

我认为,它们与WebSphere有关。如果我将HTTP标头放入上下文的IBM特定条目中:

com.ibm.websphere.webservices.Constants.REQUEST_TRANSPORT_PROPERTIES

标头已正确放入SOAP HTTP请求中。请注意,在这种情况下,该值不会包含在List实例中。

是否有人使用MessageContext.HTTP_REQUEST_HEADERS在WebSphere上成功实施此解决方案?

1 个答案:

答案 0 :(得分:0)

租赁如下链接,它有样品:

http://www-01.ibm.com/support/knowledgecenter/SSAW57_8.5.5/com.ibm.websphere.nd.doc/ae/twbs_cookiejaxws.html?lang=en

请按照上面的链接,它有样品。