Jak mogę kierować dwie oddzielne usługi internetowe o identycznej przestrzeni nazw i żądaniach nazw lokalnych do różnych punktów końcowych?

Próbuję utworzyć 2 oddzielne usługi WWW, zarówno w ramach jednej instalacji wiosennej, zarówno z kodem wsdl generowanym z tych samych schematów xsd, ale jednocześnie kierując je do dwóch oddzielnych punktów końcowych, aby móc obsługiwać żądania inaczej w oddzielnych kontekstach .

Dawny:

Webservice 1: podzbiór dostępu, niższe uprawnienia i ograniczenia bezpieczeństwa

Webservice 2: wyższe uprawnienia

<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>

Teraz, ponieważ oba wsdls są oparte na tych samych xsds, 'namespace' i 'localPart' żądań trafiają na przewód identyczne, niezależnie od tego, którą usługę internetową uderzę (/ SpmlReadOnly lub / SpmlCrud).

Dlatego wyklucza to przestarzałe PayloadRootQNameEndpointMapping, ponieważ localPart i przestrzeń nazw są nadal identyczne itd. ... i moja bieżąca konfiguracja po prostu kieruje żądania do tej samej procedury obsługi punktu końcowego i nie mam możliwości rozróżnienia, która usługa WWW została wywołana:

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

Czy to, co mogę zrobić, jest możliwe? Jeśli xsd są współużytkowane i mają identyczne przestrzenie nazw w katalogu głównym schematu i te same żądania metody localPart, czy kiedykolwiek będzie jakiś sposób na ich rozróżnienie i odwzorowanie na dwa różne punkty końcowe? Wszelkie informacje na ten temat byłyby przydatne! Mam nadzieję, że nie muszę konfigurować dwóch oddzielnych .wars i instalować ich osobno z własnymi bazami kodu na serwerze!

Dzięki, Damianie

questionAnswers(1)

yourAnswerToTheQuestion