将自定义http标头添加到SOAP服务的每个请求

时间:2018-02-03 04:32:22

标签: java web-services http soap http-headers

我正在使用JAX-WS SOAP Client将自定义http标头发送到服务,如下所示。

  Map<String, Object> request_map = ((BindingProvider) port).getRequestContext();
  request_map.put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY,
       "http://www.webservicex.com/globalweather.asmx?WSDL");
  Map<String, List<String>> headers = new HashMap<>();
  headers.put("username", Collections.singletonList("User1"));
  request_map.put(javax.xml.ws.handler.MessageContext.HTTP_REQUEST_HEADERS, headers);

我通过设置以下系统属性来跟踪tomcat上的SOAP请求。

static {
       System.setProperty("com.sun.xml.ws.transport.http.client.HttpTransportPipe.dump", "true");
      System.setProperty("com.sun.xml.internal.ws.transport.http.client.HttpTransportPipe.dump",
          "true");
      System.setProperty("com.sun.xml.ws.transport.http.HttpAdapter.dump", "true");
      System.setProperty("com.sun.xml.internal.ws.transport.http.HttpAdapter.dump", "true");
}

它记录了Http请求,但是请求不包含标题。

我做错了什么。

0 个答案:

没有答案