Android с веб-сервисом WCF, использующим ksoap2 - ошибка SoapFault - код ошибки: ‘a: ActionNotSupported’ - PullRequest
5 голосов
/ 29 июня 2011

Я сделал простой проект для вызова веб-службы wcf, используя ksoap2. Но когда это вызывает envelope.getResponse (); это дает ошибку, говоря ————–

«SoapFault - код ошибки: Строка ошибки: a: ActionNotSupported: ‘Сообщение с действием« GetString » не может быть обработано в приемнике, из-за несоответствия ContractFilter в EndpointDispatcher. Это может быть из-за несоответствия контракта (несоответствующие действия между отправителем и получатель) или привязка / безопасность несоответствие между отправителем и получатель. Проверьте отправителя и получатель имеет тот же контракт и та же привязка (включая безопасность требования, например Сообщение, Транспорт, Нет). 'Faultactor:' null 'деталь: нуль»

Я использую веб-службу на локальном хосте.

Пожалуйста, помогите мне кто-нибудь

это правильные значения, которые я присвоил,

private static final String SOAP_ACTION = “GetString”;
private static final String OPERATION_NAME = “GetString”;
private static final String WSDL_TARGET_NAMESPACE = “http://tempuri.org/”;
private static final String SOAP_ADDRESS = “http://10.0.2.2:14089/Service1.svc?wsdl”;

Ответы [ 2 ]

11 голосов
/ 29 июня 2011

Мы не знаем, правильны ли эти значения - WSDL должен сообщить вам, какое правильное действие SOAP для вызова операции GetString.

Откройте WSDL в веб-браузере (это адрес, который вы назначаете в SOAP_ADDRESS) и найдите что-то вроде:

<wsdl:binding name="..." type="...">
  ...
  <wsdl:operation name="GetString">
     <soap:operation soapAction="HERE_IS_CORRECT_ACTION" />
     <wsdl:input>...</wsdl:input>
     <wsdl:output>...</wsdl:output>
  </wsdl>
  ...
</wsdl:binding>

Btw. при звонке в службу следует использовать URL-адрес без ?wsdl строки запроса.

2 голосов
/ 24 августа 2016

Вы также можете проверить actionName с помощью SoapUI.Сначала создайте пример запроса, указав адрес wsdl, а затем найдите ваш запрос.Когда вы найдете его, выберите вкладку «Сырье» в левой части окна с запросом.Вы можете найти там заголовки http.Одна из позиций заголовка - «SOAPAction».Это имя, которое мы ищем.

...