Перенос на Spring WS 2.0 не удалось из-за отсутствия отображения <end> w810>?

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

PayloadRootQNameEndpointMapping Устаревший с spring веб-служб 2.0, в пользу PayloadRootAnnotationMethodEndpointMapping

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

Короткая. Как мы можем достичь старой старой Bean конечной точки для сопоставления Root QName без использования устаревшего API? Любые идеи?

Спасибо заранее.

Ответ 1

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

Ответ 2

Вы можете использовать более общий 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>