Сообщение с действием »не может быть обработано в получателе из-за несоответствия ContractFilter в EndpointDispatcher - PullRequest
0 голосов
/ 04 декабря 2018

Получение этого сообщения об ошибке при вызове веб-службы: -

org.springframework.ws.soap.client.SoapFaultClientException: сообщение с действием '' не может быть обработано в получателе из-за несоответствия ContractFilterв EndpointDispatcher.Это может быть связано либо с несоответствием контракта (несоответствующие действия между отправителем и получателем), либо с несоответствием привязки / безопасности между отправителем и получателем.Убедитесь, что отправитель и получатель имеют одинаковый контракт и одинаковую привязку (включая требования безопасности, например, Сообщение, Транспорт, Нет).

1 Ответ

0 голосов
/ 04 декабря 2018

Вы забыли указать действие SOAP перед вызовом веб-службы.Откройте файл WSDL и найдите операцию, которую вы пытаетесь вызвать.Вы должны увидеть что-то вроде этого:

<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions ...>
...
<wsdl:binding ...>
    ...
    <wsdl:operation name="OhMyGawd">
        <soap:operation soapAction="http://oh.my.gawd"/>
        ...
    </wsdl:operation>
</wsdl:binding>
...

Обратите внимание на значение soapAction, в данном примере это http://oh.my.gawd.

Если вы используетеSpring Web Services, добавьте следующие строки:

@Autowired
private WebServiceTemplate webServiceTemplate;

public void run() {
   ObjectFactory objectFactory = new ObjectFactory();

   // Create the request payload
   OhMyGawd ohMyGawd = objectFactory.createOhMyGawd();
   ohMyGawd.setValue(...);

   OhMyGawdResponse response = (OhMyGawdResponse) webServiceTemplate.marshalSendAndReceive(
        ohMyGawd, 
        new SoapActionCallback("http://oh.my.gawd")
);

...

}

Примечание: кредиты на этот сайт https://myshittycode.come

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...