- - PR -
VB6.0でのSOAPクライアント作成について
投稿者 | 投稿内容 | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2004-02-18 11:04
VB6.0でSOAPクライアントを作成しているのですが以下のようなエラーが出てしまいます。
WSDLReader:Analyzing the WSDL file failed HRESULT=0x80004005 - WSDLReader:Initialization of service failed HRESULT=0x80004005 - WSDLService:Initialization of the port for service XXXXService failed HRESULT=0x80004005 - WSDLPort:No binding コードは以下の通りです。 Set ogSoap = New SoapClient Call ogSoap.mssoapinit("http://localhost/wsdl/XXXX.wsdl", _ "XXXXService", _ "XXXXPort") どうしたら解決できるのかわかりません。 どなたかご教授お願いします。 | ||||||||||||||||
|
投稿日時: 2004-02-18 18:02
すみません補足します。
呼び出そうとしているWebサービスは、Javaで作成されておりCOM化されておりません。 WSDLファイルはクライアント側で所持しています。 SOAP Toolkitを使用する場合、WebサービスはCOM化されてなければならないのでしょうか? | ||||||||||||||||
|
投稿日時: 2004-02-19 12:28
SOAP ToolKitについての知識はありませんが、リファレンスを見る限り、この時点ではサーバ
に接続していないと思われます。従ってサーバ側の問題ではないでしょう。 WSDLファイルだけ指定してサービスやポートの指定を省略した場合はどうなるかまず試して みてはどうでしょうか。 | ||||||||||||||||
|
投稿日時: 2004-02-19 13:11
uk様 ご返答ありがとうございます。
WSDLファイルだけを指定すると以下のようなエラーが発生しました。 WSDLReader:XML Parser failed at linenumber 0, lineposition 0, reason is: 指定されたオブジェクトは見つかりません。 C#でのクライアント作成には成功しました。 しかし、VB6.0でも同じWebサービスを呼び出したいのです。 SOAP Toolkitを使用せず、VB6.0でSOAPクライアントを作成するのは困難なのでしょうか? | ||||||||||||||||
|
投稿日時: 2004-02-19 23:52
中込です。
ご提示のコードは問題ないように見えます。
JAX-RPCだと仮定しますと、基本的な型であれば、まず問題ないはずです。 当方では、Server側にAXIS1.1(Java)を利用して成功しています。
URLで指定したリソース(WSDL)が取得できていないと思われます。 ブラウザで "http://localhost/wsdl/XXXX.wsdl" にアクセスできますか? スペルミスなどははありませんか?
アンマネージコードで記述された、何らかのSOAP実装を使うと良いでしょう。 最新のPocketSOAPはかなり安定しています。 多分、AXIS(C++)でも可能でしょう。 | ||||||||||||||||
|
投稿日時: 2004-02-20 12:33
中込様、ご返答ありがとうございます。
>URLで指定したリソース(WSDL)が取得できていないと思われます。 >ブラウザで "http://localhost/wsdl/XXXX.wsdl" にアクセスできますか? >スペルミスなどははありませんか? はじめ、私もスペルミスだと思い確認してみましたが、 WSDLファイルにはアクセスできました。 >アンマネージコードで記述された、何らかのSOAP実装を使うと良いでしょう。 >最新のPocketSOAPはかなり安定しています。 ありがとうございます。試してみます。 | ||||||||||||||||
|
投稿日時: 2004-02-23 17:19
中込様へ、稚拙な質問かもしれませんがどうかよろしくお願いします。
PocketSOAPで試してみたのですが、 CreateProxyメソッドの第二引数が,"methodName namespace URI"となっており、 何を指定すればよいのかがわかりません。 WSDLファイルに記述されているどれかなのでしょうか? | ||||||||||||||||
|
投稿日時: 2004-02-26 00:02
中込です。お返事が遅くなりまして、すみません。
さて、
ここで指定した値は、SOAPリクエストのメソッド名のネームスペースになります。
例えば、上のように指定すれば、以下のようなSOAP要求が送信されるはずです。
ですから、WSDLとの関連となりますと、SPEC上では /definitions/binding/operation/inputの子のsoap:body (xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/)の namespaceアトリビュートの設定値ということになると思います。 Server側のSOAP実装依存だとは思いますが、たいていディフォルト値("")の ままでも動作はすると思います。 ==================================================================== 追伸(2004.2.26): 上の最後の一文について、若干の注記を追加させていただきます。 SOAP1.1 Specでは [4.3 SOAP Body]に以下のような記述があります。
http://www.w3.org/TR/2000/NOTE-SOAP-20000508/#_Toc478383503 このMAY be namespace-qualifiedというのが問題で、SOAP実装によって 解釈が変わる余地があります。そこで、「たいてい」は名前空間修飾なし でもOKになるようですというあいまいな答えになってしまうわけです。 ちなみに、WS-Iではこの問題に、ネームスペースの強制という形での解決を 得ようとしているようです。 http://www.ws-i.org/Profiles/Basic/2003-08/BasicProfile-1.0a-ja.html#refinement28003632 ==================================================================== [ メッセージ編集済み 編集者: nakagome 編集日時 2004-02-26 10:04 ] |