2011-06-29 20 views
5

ksoap2を使用してwcf Webサービスを呼び出す簡単なプロジェクトを行いました。しかし、それが呼び出すとき envelope.getResponse(); それは「にSoapFaultエラーがksoap2を使用してWCF Webサービスを使用しているAndroid - エラーSoapFault - faultcode: 'a:ActionNotSupported'

-----を言っています - のfaultcode: ':ActionNotSupported' faultStringの: 「とのメッセージをアクション 'のGetString' が に起因して、受信機側で処理することはできませんContractFilterの不一致が のEndpointDispatcherにあります。契約の不一致が (送信者と 受信者の間で一致しないアクション)か、送信者と 受信者間のバインディング/セキュリティ の不一致のために になる可能性があります。その送信者と 受信機が同じ契約と を持って確認してください同じ結合(セキュリティ 要件、例えばメッセージ、交通、 なしを含む)「faultactorは: 『ヌル』詳細: ヌル」私は

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

答えて

11

が割り当てられていることが正しい、この値である私を助けてください - WSDLはのための正しいSOAPアクションで何を教えてくださいGetStringオペレーションを呼び出します。

開き、Webブラウザで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を使用する必要があります。

+0

大変ありがとうございます。Ladislav Mrnka ... :)))))))) – janitheshan

+0

ありがとうございました。このため私は2日を無駄にした。もう一度ありがとう – Gunaseelan

+0

それは正しい行動を取るのを助けました.... – Noman

2

また、SoapUIを使用してactionNameを確認することもできます。最初にwsdl addressを指定してリクエストのリクエストを生成し、リクエストを探します。見つけたら、ウィンドウの左側の「未処理」タブをリクエストして選択します。そこにはhttpヘッダーがあります。ヘッダー位置の1つは "SOAPAction"です。それは私たちが探している名前です。

関連する問題