【问题标题】:Android with WCF web service using ksoap2 - error SoapFault – faultcode: ‘a:ActionNotSupported’使用 ksoap2 的带有 WCF Web 服务的 Android - 错误 SoapFault - 故障代码:'a:ActionNotSupported'
【发布时间】:2011-06-29 15:00:23
【问题描述】:

我做了一个简单的项目,使用 ksoap2 调用 wcf web 服务。但是当它调用 信封.getResponse(); 它给出了错误说------

“SoapFault – 故障代码: 'a:ActionNotSupported' 故障字符串: '带有动作'GetString'的消息 无法在接收方处理, 由于 ContractFilter 不匹配 端点调度程序。这可能是 因为合同不匹配 (发送方和发送方之间的操作不匹配 接收者)或绑定/安全 发件人和收件人不匹配 接收者。检查发件人和 接收方具有相同的合同和 相同的绑定(包括安全 要求,例如消息,传输, 无)。' 故障者:'null' 详细信息: 空”

我在 localhost 中运行 Web 服务。

请帮我一个

我分配的这些值是否正确,

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”;

【问题讨论】:

    标签: android wcf ksoap2


    【解决方案1】:

    我们不知道这些值是否正确 - WSDL 应该告诉您调用 GetString 操作的正确 SOAP 操作是什么。

    在网络浏览器中打开 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>
    

    顺便说一句。当您调用服务时,您应该使用不带?wsdl 查询字符串的 URL。

    【讨论】:

    • 非常感谢 Ladislav Mrnka... :))))
    • 非常感谢您。为此,我浪费了 2 天时间。再次感谢您
    【解决方案2】:

    您还可以使用 SoapUI 检查 actionName。首先通过提供 wsdl 地址生成示例请求,然后找到您的请求。当你找到它时,选择带有请求的窗口左侧的“Raw”选项卡。您可以在那里找到 http 标头。标题位置之一是“SOAPAction”。这是我们正在寻找的名称。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-16
      • 1970-01-01
      相关资源
      最近更新 更多