Добавление заголовков HTTP из реализации сервиса CXF

1

В настоящее время я внедряю мыльную услугу, и мне нужно вызвать одно мыльное обслуживание (услуга 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); 
Теги:
soap
web-services
cxf
jax-ws

1 ответ

3

Вы можете добавлять заголовки, используя 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); 

Ещё вопросы

Сообщество Overcoder
Наверх
Меню