• 締切済み

SOAPの非同期呼び出しについて

質問です。 PerlのSoap::Liteをつかって、あるwebサービスを呼び出す仕組みを作成しています。この呼び出しを、非同期で行いたいのですが。。。 どのように記述すればよろしいのでしょうか? そもそも、同期・非同期は、クライアント側で制御できるものでしょうか? ご存知の方、教えてください。 よろしくお願いいたします。

  • Perl
  • 回答数1
  • ありがとう数1

みんなの回答

  • necomimi3
  • ベストアンサー率40% (124/307)
回答No.1

参考になるかどうかはわかりませんが http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=23503&forum=10&2 非同期で呼び出した場合、結果が必要でない場合は投げっぱなしでも いいけど、結果を受け取る場合は、 それなりの処理(クライアントで定期的に待ちうけ、投げた方でどうやって結果を出力するか等) が必要です

ankomaki
質問者

お礼

ありがとうございます。 perlの処理自体を子プロセスで作成して、実行ってことですね。 そういう方法もあるんですね。 (時間があいたときに試してみます!) ただ、できれば、子プロセスを作成せずに、 SOAPの処理自体を非同期で行いたいのですが、 SOAP::Liteでは無理なのでしょうか?

関連するQ&A

  • axis SOAP Fault

    お世話になります。 perlクライアントから、axisサーブレット(javaクラス)の呼出を行っています。 サーブレットであるエラーが発生したときに、例外を投げているのですが、 perlクライアント側でその例外をキャッチすることができません。 ▼perlクライアント --------------------------------------------- my $service = SOAP::Lite -> uri('http://xxx/axis/services/TestService') -> proxy('http://xxx/axis/services/TestService?wsdl'); $a = $service->Test( 0, 0 ); unless ( $a->fault ) { print "Success\n"; # Exceptionが発生してもSuccessになる。 } else { print "Error\n"; } ▼javaサーブレットクラス ------------------------------------- public class Test( int a, int b ) { : if ( a==0 || b==0 ) { throw Exception( "testException" ); } : 目的としては、サーブレットクラスの例外を取れればいいのですが、 根本的にやり方が間違っている場合もご指摘いただけると助かります。

  • SOAPを使用したwebサービス

    現在SOAPを使用したwebサービスを サーバー側として、JAXMかJAX-RPCにて構築しようと 思っております。 webサービスの内容は特に決定していませんが、 同期通信で何らかの計算リクエストをクライアント側から 発行し、計算結果を画面上に表示する様な仕組みをまずは考えております。 そこで質問です。 1)JAXMとJAX-RPCのどちら使用した方が良いか?  ちょっと読んだ書籍によると、JAXMは非同期通信が可能であり、  きめ細かい処理が可能であるという事を知りました。  上記前提で単に同期通信で計算結果を取得したいだけと  言いましたが、あくまでもサンプルとして構築した後に、  実際にやりたい事が色々と出てくる可能性があります。  これを考慮すると、どちらがベター、ベストなのかを教えて下さい。  こういう事をするならこちらの方がいい。等、色々と知りたいです。 2)クライアント側として、  ・javaのデスクトップアプリ  ・VC++6.0のデスクトップアプリ  ・VB.NETのデスクトップアプリ  の3種を考えておりますが、その際、SOAP利用を行うのに便利な  ライブラリをそれぞれについて教えて下さい。  VC++6.0ではSOAP Toolkitに付属するライブラリを使用する?等  を知りたいです。その使用方法等が掲載されているwebサイトや、  書籍についても情報を下さい。  何れかひとつの回答でも構いません。 以上、よろしくお願いします。

  • 例外のキャッチ方法

    お世話になります。 perlクライアントから、SOAP::Liteモジュールでaxisサーブレット(javaクラス)の呼出を行っています。 サーブレットであるエラーが発生したときに、例外を投げているのですが、 perlクライアント側でその例外をキャッチするにはどのようにしたら良いのでしょうか? ●perlクライアント --------------------------------------------- my $service = SOAP::Lite -> uri('​http://xxx/axis/services/test')​ -> proxy('​http://xxx/axis/services/test?wsdl'); $result = $service->Test( 0, 0 ); ●javaサーブレットクラス ------------------------------------- public class test( int a, int b ) { : if ( a==0 || b==0 ) { throw Exception( "testException" ); } :

    • ベストアンサー
    • Perl
  • 現在PerlでSOAPのWEBサービスを構築する必要がありSOAP::

    現在PerlでSOAPのWEBサービスを構築する必要がありSOAP::Liteを インストールしようとしています。 SOAP::Liteをインストールしようとすると下記エラーとなり失敗してしまいます。 エラーの対処方法等ご教授いただけないでしょうか E:\soaptest>ppm install SOAP-Lite Downloading ActiveState Package Repository packlist...done Updating ActiveState Package Repository database...done ppm install failed: Can't find any package that provides Apache:: for SOAP-Lite 環境 WindowsServer2008 IIS7.0 ActivePerl v5.8.9 build 827

  • SOAP::Lite axis 例外処理

    お世話になります。 perlクライアントから、SOAP::Liteモジュールを使い、 axisに登録されたjavaサーブレットクラスを呼び出しています。 (例) $s = SOAP::Lite->service( 'http://xxx.wsdl' ); #サービス名 $s->test(); #javaサーブレットクラス呼び出し javaサーブレットクラスが例外(Exception)で終了した場合、 perlクライアントで例外をキャッチする方法はありますでしょうか? #以下のコードではエラーはキャッチできませんでした。 eval { $s->test(); }; if ($@) { # エラー処理 }; * 通常処理はうまくうごいています。 例外は意図的にExceptionをthrowしています。java内ではキャッチして終了してます。

  • ■SOAPを使ったwebアプリケーションについて質問です

    ■SOAPを使ったwebアプリケーションについて質問です 現在、SOAPを利用したJavaでのクライアントーサーバ間のwebアプリケーションを作成しようとしています。 やりたいことは下記の通りです。 1、クライアント側でSOAP本体を自前で作成し、それをサーバプログラムに送信する。 2、サーバで受け取ったSOAPメッセージを解析し、応答メッセージを作成する。 3、作成した応答メッセージをクライアントへ返す。 使用する環境は Java 1.6 Apache 2,2 Tomcat 6.0 Axis2(不要なら使わない予定) です。 上記のアプリケーションを作成するには具体的にどのようなソースになるか ネット上でも調べてみたのですが見つからず困っております。 有識者の方、どうかご教授願いますでしょうか。

  • VB.net SOAPメッセージの取得方法

    Webサービスを利用したプログラムを試行錯誤しながら作っています(なかなか進みません)。 以下の件、ご教授ください。 VB,netにて、Web参照を指定して作成したクライアント・アプリケーションで、SOAPの送受信をデバッグするために、Webメソッドを呼出したときのSOAPメッセージ(リクエストとレスポンス)のXMLテキストを画面に表示したいのですが、その取得方法がわからず困っています。 SOAPメッセージ(リクエストとレスポンス)のXMLテキストを取得する方法をご教授ください。 よろしくお願い致します。

  • AJAXでSOAPを利用する定番の方法は?

    お世話になります。 SOAPで実現されている某サービスのWeb APIを、AJAXで呼び出して利用することを考えています。 (今更SOAPかよ?という感じですが、それはさておきまして…) このような利用をする際の、定番の方法はあるのでしょうか? JavaScriptのSOAPクライアントライブラリで、何か定番等があっても良さそうな気がするのですが、Webで探しても、定番と言えそうなものが見つかりませんでした。 もし定番がないとしましたら、何故未だ、定番といえるものがないのでしょうか。 (SOAPの概要は知っていますが、今まで使う縁がなく、詳細を私は知りません)

  • PHP Soapで利用できるサービスの数

    PHPのsoap関数を利用してwebサービスを開発しています。 server側に複数のサービス関数を登録してclient側から呼び出していますが、clientから呼び出すサービス(関数)の数が4以下で正常に作動しますが、4を越えるサービスは呼び出されず正常に作動しません。 4個以上のサービスを呼び出す方法についてよろしくご教示お願いします。 当方の使用環境は以下の通りです。 ----------------------------------------------- Microsoft Windows XP 2002 Home Edition Version 2002 Service Pack 3 Apache 1.3.31(Win32) PHP Version 5.2.5 Build Date Nov 8 2007 23:18:08 php_soap.dll Version 5.2.5 のlocalhostで使用。 [php.ini]設定 [soap] ; Enables or disables WSDL caching feature. soap.wsdl_cache_enabled=1 ; Sets the directory name where SOAP extension will put cache files. soap.wsdl_cache_dir="/tmp" ; (time to live) Sets the number of second while cached file will be used ; instead of original one. soap.wsdl_cache_ttl=86400 -----------------------------------------------

    • 締切済み
    • PHP
  • axis SOAP

    Tomcat + axis の Webサービスにおいて、 クライアントからの入力に対し、 Webサービス側でなんらかの処理を行い、 結果のデータを返しています。 このとき、入力が不正な値だった場合に、 返却時のHTTPコードに 50x InputError などの 任意のHTTPコードを返したいのですが、可能でしょうか? よろしくお願い致します。

    • ベストアンサー
    • Java

専門家に質問してみよう