Как можно направить две разные веб-службы с одинаковым пространством имен и локальными именами в разные конечные точки?

Я пытаюсь создать 2 отдельных веб-сервиса, оба в рамках одного весеннего развертывания, оба с генерированием wsdl из одних и тех же xsd-схем, но их нужно направить в две отдельные конечные точки, чтобы я мог обрабатывать запросы по-разному в отдельные контексты.

Пример:

Веб-сервис 1: подмножество доступа, более низкие привилегии и ограничения безопасности

Веб-сервис 2: более высокие привилегии

<sws:dynamic-wsdl id="spml-readonly" 
    portTypeName="SpmlReadOnlyService" 
    locationUri="SpmlReadOnly">
    <sws:xsd location="/WEB-INF/xsd/spml/pstc_spmlv2_core.xsd"/>
</sws:dynamic-wsdl>

<sws:dynamic-wsdl id="spml-crud" 
    portTypeName="SpmlCrudService" 
    locationUri="SpmlCrud">
    <sws:xsd location="/WEB-INF/xsd/spml/pstc_spmlv2_core.xsd"/>
    <sws:xsd location="/WEB-INF/xsd/spml/pstc_spmlv2_search.xsd"/>
    <sws:xsd location="/WEB-INF/xsd/spml/pstc_spmlv2_batch.xsd"/>
</sws:dynamic-wsdl>

Теперь, поскольку оба wsdls основаны на одном и том же xsds, «пространство имен» и & lt; localPart & quot; из запросов встречаются идентичные, независимо от того, к какому веб-сервису я обращаюсь (/ SpmlReadOnly или / SpmlCrud).

Следовательно, это исключает устаревший PayloadRootQNameEndpointMapping, поскольку localPart и пространство имен все еще идентичны, и т. Д., И моя текущая конфигурация просто перенаправляет запросы в один и тот же обработчик метода конечной точки, и у меня нет способа определить, какая веб-служба была называется:

    @PayloadRoot(namespace = NAMESPACE_URI, localPart = "lookupRequest")
    @ResponsePayload
    public Source handleLookupRequest(SoapMessage message) throws Exception {
        ...
    }

Могу ли я сделать то, что я могу сделать? Если xsd'ы являются общими и имеют идентичные пространства имен в корне схемы и одинаковые запросы метода localPart, будет ли когда-нибудь способ различать их и сопоставлять с двумя разными конечными точками? Любая информация об этом будет полезна! Я надеюсь, что мне не нужно настраивать два отдельных .wars и развертывать их отдельно со своими собственными базами кода на сервере!

Спасибо, Damian

Ответы на вопрос(1)

Ваш ответ на вопрос