Получение несоответствия AddressFilter в EndpointDispatcher в запросе SOAPUI
Моя служба работает нормально. Если я использую ее через мое клиентское приложение. Я использую тот же wsdl для загрузки в SOAPUI. Он успешно создал выборочные тесты для каждого метода. Я хочу отправить запрос, и он должен соответствующим образом генерировать ответ. Я вижу правильный адрес конечной точки в запросах. Он автоматически создал XML SOAP. Если я попытаюсь запустить его, чтобы получить ответ. Это дает мне следующую ошибку.
<s:Envelope xmlns:s="http://www.w3.org/2003/05/soap-envelope" xmlns:a="http://www.w3.org/2005/08/addressing">
<s:Header>
<a:Action s:mustUnderstand="1">http://www.w3.org/2005/08/addressing/soap/fault</a:Action>
</s:Header>
<s:Body>
<s:Fault>
<s:Code>
<s:Value>s:Sender</s:Value>
<s:Subcode>
<s:Value>a:DestinationUnreachable</s:Value>
</s:Subcode>
</s:Code>
<s:Reason>
<s:Text xml:lang="en-GB">The message with To '' cannot be processed at the receiver, due to an AddressFilter mismatch at the EndpointDispatcher. Check that the sender and receiver EndpointAddresses agree.</s:Text>
</s:Reason>
</s:Fault>
Я не знаю, где еще проверить, что здесь происходит. Пожалуйста, помогите мне в этом отношении. Я использую SOAPUI4.0.1.
Ответы
Ответ 1
Проблема заключается в том, что в сообщении Request отсутствует заголовок To. В редакторе сообщений чуть ниже окна сообщения запроса нажмите кнопку WS-A
. Затем установите флажок Add default wsa:To
Теперь запустите свой запрос, и служба будет работать нормально.
Надеюсь, что это поможет.
Пожалуйста, отметьте его как ответ, если он решит вашу проблему.
Ответ 2
Вам также нужно установить WS-ReliableMessaging на true.
Ответ 3
Такая же проблема возникла у меня на сервере biztalk 2013 r2. этот работал у меня. Я думаю, нам нужно сообщить biztalk о местоположении конечной точки, чтобы отправить результат. Тест script, выполняемый в soapui, должен выглядеть следующим образом:
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:cal="http://CallExec.PO">
<soap:Header>
<To soap:mustUnderstand="1" xmlns="http://www.w3.org/2005/08/addressing">http://biztalktbtk/CallOrchestration/Service1.svc</To>
</soap:Header>
<soap:Body>
<cal:PO>
<PO_Num>1</PO_Num>
<Weight>1</Weight>
<shipmentPrice>1</shipmentPrice>
</cal:PO>
</soap:Body>
</soap:Envelope>
Ответ 4
Кажется, что ваша служба WCF использует стандарт WS-Addressing для определения места приема, в которое должно быть отправлено сообщение. При пропуске это приводит к пустующему адресу назначения, указанному в сообщении об ошибке. Попробуйте установить свойство WS-Addressing в true
в свойствах запроса.