Использование SoapActionEndpointMapping в Spring-ws - PullRequest
2 голосов
/ 10 июня 2009

Я пытаюсь создать WS на основе WSDL, который определяет один запрос и один ответ. Входящий запрос должен быть сопоставлен с конечной точкой в ​​зависимости от действия SOAP, определенного в сообщении SOAP. Чтобы достичь этого, я пытаюсь использовать SoapActionEndpointMapping в моем конфигурационном файле servlet.xml и определить сопоставления, как описано в документации Spring .

 <bean id="endpointMapping" class="org.springframework.ws.soap.server.endpoint.mapping.SoapActionEndpointMapping">
    <property name="mappings">
        <props>
            <prop key="http://myCompany/MyService/MyRequest/mySoapActionOne">myFirstEndpoint</prop>
            <prop key="http://myCompany/MyService/MyRequest/mySoapActionTwo">mySecondEndpoint</prop>
        </props>
    </property>

Моя конечная точка расширяет AbstractMarshallingPayloadEndpoint и должна иметь возможность обрабатывать запросы.

Проблема в том, что при попытке отправить запрос (с помощью SoapUI) в журнале появляется следующая ошибка:

WARN  [EndpointNotFound] No endpoint mapping found for [SaajSoapMessage {http://schemas.mycompany/MyService}MyRequest]

Ранее я с большим успехом использовал PayloadRootQNameEndpointMapping, но не могу это сработать.

Любая помощь приветствуется.

Привет.

Ответы [ 2 ]

0 голосов
/ 29 сентября 2010

В вашем SOAP-клиенте (SOAPUI) вам нужно добавить заголовок SOAPAction к вашему запросу, чтобы снабдить Spring действием SOAP для использования в его отображении.

например. SOAPAction = http://myCompany/MyService/MyRequest/mySoapActionOne

Не должно иметь значения, какой тип конечной точки вы используете, потому что в настоящее время вы получаете ответ 404 - ваш запрос не находит пути к какой-либо конечной точке.

0 голосов
/ 10 июня 2009

У вас также определен bean-компонент адаптера обработчика? Он понадобится вам для использования MarshallingPayloadEndpoint, чтобы Spring знал, как выполнить маршаллинг. Адаптер называется что-то вроде MarshallingEndpointHandlerAdapter или аналогичным.

...