2011-08-04 8 views
1

Webサービスを使用するアプリケーションで作業しています。これはプライベートなサービスなので、WSDLやコードをここに投稿することはできません。具体的ではなく一般的なアドバイスのための質問です。iOS用のSudz-cに関する問題、ネームスペースがありません

私はWSDLをSudz-cに供給しました。 WSDLには元々、sudz-cが見逃すXSDのインポートがいくつかあったので、これらをWSDLの型セクションにコピーしました。

私は生成されたコードを使用してサービスに要求しますが、要求にWSDLの型セクションにコピーした複合型オブジェクトの名前空間がないことがわかりました。

もう一度これは非常に一般的な情報ですが、他の誰かがSudzと同様の問題を抱えている場合は、アドバイスを得ることは素晴らしいことです。

+0

興味がある、または同様の問題を抱えている人のためだけに、問題を解決したことはありませんでしたので、Webサービスのコードを手渡す必要がありました。(ソリューションの中では最高のものではありませんが、同様の状況で自分自身を見つけるのは便利なヒントは、各サービス呼び出しの正しいHTTPヘッダーを設定していることを確認することです。 – bennythemink

答えて

0

はこれに対する答えを見つけることができませんでしたので、私はスレッドを知っているだけで:(

2

をWebサービスメッセージをハンドコーディング終わりました WSDLに外部XSDがインクルードされている/はいからインポートされている場合、それらのXSDタイプをWSDLにコピーすることは正しいです(つまり、インクルード/インポートではなくWSDLに直接埋め込みます) ..生成されたコードは、XSDの型を生成するため、ほぼ完璧な意味を持ちます型も同様ですが、エラー(複数のファイルで同じエラー)が発生する可能性があります。いくつかの要求/応答タイプのBASE-Classがありません。コードを分析した後、欠落している名前空間は、同じSOAPObjectオブジェクトであるため、その欠落している名前空間をSOAPObject.hに置き換え、SOAPObjectインターフェイス/クラスを基本クラスとして使用しました。例: 私の場合は

#include "SOAP.h" 

#include "sudz.h" 
@class sudz; 

@interface sudzAbstractRequestType : sudz 
{ 
} 

(注:「sudzは」SUDZ-Cのウェブサイト/プロジェクトを使用してコードを生成するときに使用する一意の名前で、あなたのケースでは、それは異なる場合があります)。 私は(どこでも、このエラーが発生したプロジェクト内)にコードを変更:

#include "SOAP.h" 

#include "SOAPObject.h" 
@class SOAPObject; 
//#include "sudz.h" 
//@class sudz; 

@interface sudzAbstractRequestType : SOAPObject//sudz 
{ 
} 

私は、これは他人を助けることを願っています...私はコーディング ハッピー.. OK日間立ち往生しましたが、後でそれが働いてしまいました:)

関連する問題