| 
					08-22-2011, 06:05 PM,  
				 | |||||
| 
 | |||||
| SOAP非同期通信のキャンセルについて 
					こんばんは。度々古いVerの話で申し訳ないのですが  COM.CURL.WSDK1.0 を使用した非同期通信 キャンセルの実装について SOAP通信のRead時に SOAPHTTPRPCPostCaller の async-call メソッドを使用し ResponseをRead中 待ちうけイベントの SOAPHTTPRPCPostAsyncWorker cancel メソッドを使用すると SOAPHTTPRPCPostCaller IOException[HTTPAsyncWinInetBufferedByteInputStream @0x0D1AAC04]がオープンされていません。 が発生する事象が起きております。 Response が返却される前の キャンセルは Post→Close で正常キャンセルが可能です。 当方でもオープンソースを、追ってはいるのですが、 このエラーを回避または、ハンドリングしたいと思っておりますが 該当箇所がどの辺りになるのか、ご教授願えませんでしょうか。 | |||||
| 
					08-22-2011, 06:48 PM,  
(This post was last modified: 08-22-2011, 06:52 PM by hokada.)
				 | |||||
| 
 | |||||
| RE: SOAP非同期通信のキャンセルについて 
					onyoさん WSDKには詳しくないので参考になるかどうかわかりませんし、想像での回答ですが、 このエラー内容からは、非同期処理が開始して、AsyncWorker (ここではそのサブクラスのSOAPHTTPRPCPostAsyncWorker)が生成されているようですが、 取得すべきInputStreamは、まだオープンされていないので、IOExceptionが発生しているように見受けられますね。 原因を探るのに、soap/SOAPHTTP.scurlファイルのSOAPHTTPRPCPostAsyncWorker.cancelメソッドの最初の行でbreakpointを付ければ、デバッグが早いかと思います。 もしくは、パニックレポート(=スタックトレース)を見てみると、WSDK内のどこで落ちているかわかると思います。 | |||||
| 
					08-22-2011, 07:42 PM,  
				 | |||||
| 
 | |||||
| RE: SOAP非同期通信のキャンセルについて 
					hokada 様  ご返信ありがとうございます。 前者の cancel メソッドで止める手法は メソッド内でステップ実行している最中にReadが終わってしまいそうです。 WSDLをパッケージとして使用してましたので コールスタックでも追えず、困っておりました。 オープンソースでのDebugを試みるという、初歩的なことを忘れていました。。。 IOException自体をcatchさえできれば、握りつぶしても、 仕様的には問題ない(Readを受取らなくてもよい)ので、 どこで落ちてるのか探ってみます。 ありがとうございました。 | |||||
| 
					08-22-2011, 07:51 PM,  
(This post was last modified: 08-22-2011, 07:52 PM by hokada.)
				 | |||||
| 
 | |||||
| RE: SOAP非同期通信のキャンセルについて 
					> WSDLをパッケージとして使用してましたので  > コールスタックでも追えず、困っておりました。 確かにそうですね・・・。 > WSDLをパッケージとして使用してましたので > コールスタックでも追えず、困っておりました。 恐らくpcurlをお使いいただいていると思うので、現在はpcurlへのマニフェストファイルにdelegate-toしているところ変更して、ソースコードを見るようにすれば、デバッグできると思います。 | |||||
| 
					08-23-2011, 09:24 PM,  
(This post was last modified: 08-23-2011, 09:27 PM by onyo.)
				 | |||||
| 
 | |||||
| RE: SOAP非同期通信のキャンセルについて 
					COM.CURL.WSDK.1.0 で非同期通信キャンセルを実装するような  方は今現在いないでしょうが・・・ 最新の WSDK+UTIL-V7_090925 でも同じ実装でしたので、 結果を報告までに。 COM.CURL.WSDK.SOAP SOAPHTTP.scurl 内 SOAPHTTPRPCPostAsyncWorker の cancel メソッド が Code: {method public open {cancel}:boolとなっていましたが、 {self.close} の位置が、{async-worker.cancel} の前であるため、イベント内でRead中に落ちるようです。 Code: {method public open {cancel}:boolと改修してみると、落ちなくなりました。 ご回答くれた皆様有難う御座いました。 | |||||
| 
					« Next Oldest | Next Newest »
				 | 
Users browsing this thread:
1 Guest(s)
1 Guest(s)




 
 
 
				
 

