我正在使用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请求,但是请求不包含标题。
我做错了什么。