Миграция на Spring WS 2.0 не удалась из-за отсутствия сопоставления конечной точки бина? - PullRequest
11 голосов
/ 27 апреля 2011

Мы использовали PayloadRootQNameEndpointMapping для сопоставления сценариев конечной точки (на основе языка сценариев, таких как groovy или что-то еще) с данным корнем QName.Недавно мы пытались перенести spring ws на версию 2.0.Javadoc PayloadRootQNameEndpointMapping показывает, что класс помечен как устаревший.

PayloadRootQNameEndpointMapping Устаревший с Spring Web Services 2.0, в пользу PayloadRootAnnotationMethodEndpointMapping

Поскольку аннотации являются статическими, мы не можем предоставить динамическую концепцию для конечных точек сценариев.До сих пор мы могли в общем случае сопоставлять Бин, который обрабатывает конечную точку сценария (предоставляется с файлом сценария и некоторыми контекстами), с корнем QName.

Short : Как мы можем достичьстарая добрая конечная точка bean для сопоставления корневого QName без использования устаревшего API?Есть идеи?

Заранее спасибо.

Ответы [ 2 ]

1 голос
/ 11 августа 2011

Можете ли вы использовать что-то вроде SimpleMethodEndpointMapping , чтобы написать свой собственный диспетчер?Проверьте ссылку на источник

0 голосов
/ 23 мая 2014

Вы можете использовать более общие XPathPayloadEndpointMapping , где xpath будет указывать на корневой элемент.

<bean id="endpointMapping" class="org.springframework.ws.server.endpoint.mapping.XPathPayloadEndpointMapping">
    <property name="expression" value="local-name(//*[1])" />
    <property name="endpointMap">
        <map>
            <entry key="rootElement" value="endpointRef" />
        </map>
    </property>
</bean>
...