Можем ли мы получить детали запроса через вызов SOAP с использованием Apache CXF? - PullRequest
0 голосов
/ 14 сентября 2011

Мы получаем запрос SOAP на наш сервер из различных систем.Перед отправкой ответа нам нужно сделать несколько новых запросов к запрашивающей системе, чтобы получить некоторые детали.Для этого нам нужно определить детали запрашивающего сервера.Есть ли способ определения: - Запрашивающей системы VIP - Запрашивающий IP - Другие специфические детали запрашивающей стороны

Ответы [ 2 ]

0 голосов
/ 14 сентября 2011

Если вы используете JAX-WS API, вы можете использовать WebServiceContext для извлечения метаданных сообщения. Просто вставьте ссылку в вашу реализацию:

@WebService(name = "MyService" /*...*/)
public class MyService {

    @Resource
    private WebServiceContext wsc;

    @WebMethod
    public MyResponse process(MyRequest request) {
        HttpServletRequest httpRequest = (HttpServletRequest) wsc.getMessageContext().get(MessageContext.SERVLET_REQUEST);

        httpRequest.getRemoteAddr(); // access some parameters...

        return new MyResponse();
    }

}

Он позволяет вам получить доступ ко «всему», пришедшему через HTTP-запрос, например, к адресу вызывающего абонента.

0 голосов
/ 14 сентября 2011

Я предполагаю, что сервис Soap основан на протоколе Http.Вы можете использовать HttpServletRequest методы getRemote ... ().Но я не уверен, хватит ли вам этой информации.Другой вариант - попросить клиента включить информацию о клиенте, которая вам нужна, в свои запросы.

...