2011-02-10 8 views
1

私は応答があり、例外の場合はSOAP障害を返します。私はこのSOAP Faultを処理したい。しかし、SOAP応答をデシリアライズすることで得られる応答にはSOAPフォールトはありません。Sudzc iPhone SOAP - このライブラリで自動生成されたデータを使用してSOAP障害を処理するにはどうすればよいですか?

私はWebサービスの目的のCコードを生成するためにSudzcライブラリを使用しています。

お願いします。あなたはすでにこれをやっている場合は、私がログを回すことを示唆している、[[にSoapFaultクラス] idOfSoapObject isKindOfClass]

あなたSudzcで

おかげで、

プリヤ

答えて

2

SudzcにバンドルされているSoapRequest.mにバグがあるようです。

具体的には、あなたは

- (void)connectionDidFinishLoading:(NSURLConnection *)connection; 

方法を見て、次のコードビットに移動した場合:に戻ったときは、その出力は常にゼロになります見ることができます

id output = nil; 
SoapFault* fault = [SoapFault faultWithXMLDocument: doc]; 

if([fault hasFault]) { 
    if(self.action == nil) { 
     [self handleFault: fault]; 
    } else { 
     if(self.handler != nil && [self.handler respondsToSelector: self.action]) { 
      [self.handler performSelector: self.action withObject: output]; 
     } else { 
      NSLog(@"SOAP Fault: %@", fault); 
     } 
    } 
} 

ハンドラ。

は、この問題を修正するには、単にそのようなあなたのハンドラに出力するのではなく、にSoapFaultを返すことができます。

... 
[self.handler performSelector: self.action withObject: fault]; 
... 
+0

これは今、Sudzcで修正されているようです。 – radven

0

はハンドラメソッド、することができますを返しますon:サービスに.logging(BOOL)プロパティがあります。これは、完全な石鹸の要求と応答を記録します。ここでは、障害の手動で応答を確認できます。

+0

は、問題を発見しました。 Soapはフォルトを私のハンドラに戻していませんでした。修正しました。ありがとう。 – Pria

+1

あなたが正しい場合、答えとしてそれを受け入れるべきです – makboney

関連する問題