Реализация прокси-фильтра веб-службы - PullRequest
0 голосов
/ 28 марта 2012

Мы пытаемся создать прокси-фильтр веб-службы, который будет использоваться для фильтрации вызова веб-службы по отношению к фактической удаленной веб-службе.(Spring / tomcat)

«Веб-служба фильтра веб-службы» должна принять новый запрос мыла от клиента веб-службы, отфильтровать запрос на основе некоторых входных данных и, если данные действительны, перенаправить на удаленныйвеб-сервис.

Удаленный веб-сервис должен ответить клиенту веб-сервиса.

В идеале клиент должен быть построен с использованием удаленного веб-сервиса WSDL, он должен просто изменить конечную точку на новый фильтр веб-сервиса.

создание клиента веб-службы из удаленного веб-сервиса WSDL -> прокси-сервер веб-службы фильтра вызовов -> анализ входных данных -> перенаправление на удаленный веб-сервис -> удаленный веб-сервис ответит клиенту веб-службы.

1 Ответ

1 голос
/ 28 марта 2012

Таким образом, ваш прокси должен иметь возможность анализировать SOAP-запрос для извлечения некоторых «входных данных».

Тем не менее, чтобы избежать создания заглушек Java и избежать всех издержек обработки десериализации, я бы реализовал javax.xml.ws.Provider<SOAPMessage>, что-то вроде

@javax.xml.ws.ServiceMode(value = javax.xml.ws.Service.Mode.MESSAGE)
@javax.xml.ws.WebServiceProvider(
    wsdlLocation = "/mypath/my.wsdl", 
    targetNamespace = "my-namespace", 
    serviceName = "ProcessService", 
    portName = "ProcessPort"
)
public class ProcessServerRaw implements Provider<SOAPMessage> {



    public SOAPMessage invoke(final SOAPMessage request) {

//process your SOAP message object here and redirect it as is to your final SOAP web service    

    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...