1

Webサービスを使用するアプリに取り組んでいます。これはプライベートサービスであるため、WSDLまたは生成されたコードをここに投稿することはできません。したがって、これは詳細ではなく、いくつかの一般的なアドバイスに対する質問です。

WSDLをSudz-cにフィードしました。WSDLには元々、sudz-cが見落とすXSDのインポートがいくつかあったので、これらをWSDLのtypesセクションにコピーしました。

生成されたコードを使用してサービスにリクエストを送信しましたが、WSDLのtypesセクションにコピーした複合タイプオブジェクトの名前空間がリクエストにないことがわかりました。

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

4

3 に答える 3

2

スレッドが終了したことはわかっていますが、この問題の解決策を見つけました。WSDLに外部XSDが含まれている/インポートされている場合は、YESの場合、それらのXSDタイプをWSDLにコピーする(つまり、含めるのではなく、WSDLに直接埋め込む)ことができます。 / importing)..生成されたコードは、XSDタイプのタイプも生成するため、どのような意味でもほぼ完璧です。ただし、エラー(複数のファイルで同じエラー)が発生する可能性があります。リクエスト/レスポンスタイプ..コードを分析した後、欠落している名前空間は同じSOAPObjectオブジェクトにすぎないことに気付いたので、欠落している名前空間をSOAPObject.hに置き換え、SOAPObjectインターフェイス/クラスを基本クラスとして使用しました。例えば私の場合

#include "SOAP.h"

#include "sudz.h"
@class sudz;

@interface sudzAbstractRequestType : sudz
{
}

(注:「sudz」は、SUDZ-C Webサイト/プロジェクトを使用してコードを生成するときに使用する一意の名前です。この場合、異なる場合があります)。コードを次のように変更しました(このエラーが発生したプロジェクトのすべての場所):

#include "SOAP.h"

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

@interface sudzAbstractRequestType : SOAPObject//sudz
{
}

これが他の人に役立つことを願っています...私は何日も立ち往生していましたが、後でそれはうまく機能しました..ハッピーコーディング:)

于 2012-11-12T07:03:06.397 に答える
0

あなたが試みるかもしれない一つのことは、実際のサービス自体であなたの名前空間を修正することを確認することです。

これを実現するためのリンクヘルプは次のとおりです。

http://alensiljak.blogspot.com/2009/06/removing-httptempuriorg-namespace-from.html

于 2011-11-18T18:18:02.533 に答える
0

これに対する答えが見つからなかったため、Webサービスメッセージを手作業でコーディングすることになりました:(

于 2011-12-12T07:23:29.273 に答える