В настоящее время я внедряю мыльную услугу, и мне нужно вызвать одно мыльное обслуживание (услуга B) из другого мыльного сервиса (услуга A). Из службы A, как установить заголовки HTTP, а не заголовки SOAP, из выпадающего запроса на мыло к сервису B.
В настоящее время я использую JaxWsDynamicClientFactory следующим образом:
JaxWsDynamicClientFactory dcf = JaxWsDynamicClientFactory.newInstance();
Client client = dcf.createClient(localhost/services/test?wsdl");
results = client.invoke(new QName(namespace,operation), service parameters);
Вы можете добавлять заголовки, используя CXF RequestContext. Например, чтобы добавить заголовок с именем Header-Name
со значением headerValue
:
JaxWsDynamicClientFactory dcf = JaxWsDynamicClientFactory.newInstance();
Client client = dcf.createClient(localhost/services/test?wsdl");
@SuppressWarnings("unchecked")
Map<String, List<String>> headers = (Map<String, List<String>>) client.getRequestContext()
.get(Message.PROTOCOL_HEADERS);
if (headers == null) {
headers = new TreeMap<String, List<String>>(
String.CASE_INSENSITIVE_ORDER);
client.getRequestContext().put(Message.PROTOCOL_HEADERS, headers);
}
headers.put("Header-Name", Collections.singletonList("headerValue"));
results = client.invoke(new QName(namespace,operation), service parameters);