WSDL定義関数を呼び出そうとしたときに、VisualStudio2010からの無効な定義に関するエラーが発生しました。問題は、2つの別々の関数で同じメッセージ定義を使用できないことでした。したがって、同じことをしながら、複数のメッセージ定義を作成する必要があります。
例えば:
<message name="Hi">
<part name="input" type="xsd:string">
</message>
<message name="Say_hi_back">
<part name="return" type="xsd:string">
</message>
<message name="I_hate_you">
<part name="return" type="xsd:string">
</message>
<portType name="DataPort">
<operation name="sayHello">
<input message="tns:Hi"/>
<output message="tns:Say_hi_back"/>
</operation>
<operation name="sayIHateYou">
<input message="tns:Hi"/>
<output message="tns:I_hate_you"/>
</operation>
</portType>
ここで、関数のいずれかを呼び出すとエラーが発生します。まったく同じ部分のHi2を追加し、操作定義の入力メッセージの1つをtns:Hi2に変更しない限り。
どうしてこれなの?意味がない。構築するすべての関数にcustomerIDを追加する必要があるサービスを構築しています。予定を取得するための1つの機能、支払いのための1つ、すべてのための1つの機能。これは、メッセージ定義を10回コピーして、getCustomerID *N*という名前を付ける必要があることを意味します。
また、多くの場合、複数の入力パラメーターが必要になります。たとえば、誰かが日付xから日付yまでのすべての予定を設定したいとします。(これは、支払いなどのように保存されるすべての情報に当てはまります。)int、date、およびdateを含む1つのメッセージのみが必要です。巨大な文書を書かなければなりません。
だから私の質問は、これを行う他の方法があるかどうかです。私はWSDLを2日間しか使用していませんが、それらは2日間問題に満ちていて、「勝利」を欺いていました。ある問題を解決して、それが次の問題への門を開いたことを見つけるだけです。
ありがとう。:)