SOAP::Transport::HTTP::CGI

Hippo2000 (2000/7/19)


目次


名前

SOAP::Transport::HTTP::CGI - 汎用 SOAP CGI ハンドラ


概要

SOAPエンドポイントをバニラCGIを使って公開するためにこのクラスを使います。以下はこのクラスを使って公開されたSOAPエンドポイントの例です:

    package ServerDemo;
    use strict;
    use SOAP::Transport::HTTP::CGI;
    sub handler {
        my $safe_classes = {
            Calculator => undef,
        };
      SOAP::Transport::HTTP::CGI->;handler($safe_classes);
    }
    1;

(PerlスクリプトをCGIスクリプトとする方法について示すことは放ってあります−詳細はPerlドキュメントをご覧下さい)


説明

このクラスはCGIにフックをかけ、SOAP特有の作業をするためにSOAP::Transport::HTTP::Server を呼び出す詳細についてカプセル化しています。

こうしてServerクラスは、単純に異なるフロント−エンド(例えば SOAP::Transport::HTTP::Apache)を組みたてることにより、(mod_perlを含めて)どのようなWebサーバ設定でも再利用することができます。


handler(SafeClassHash, OptionalDispatcher)

これがこのクラスでの唯一のメソッドです。そしてエンドポイントで呼ばれるであろうクラスの集まりがキーに入ったハッシュ・リファレンスを渡さなければなりません。例えばこのリストでクラスFooBarを指定し、クライアントがSOAPリクエストhttp://yourserver/soap?class=FooBar, を送信したら、SOAP::Transport::HTTP::Serverクラスは最終的にFooBar.pmをロードし、FooBarのインスタンスを作成し、そのhandle_request関数を呼び出そうとします。(詳細はSOAP::Transport::HTTP::Serverをご覧下さい)。このハッシュにクラスを入れなければ、SOAP/Perl はそれを実行しません。これは保証します。

ところでこのハッシュではキーだけが重要です、値は無視されます。

同時に、もし幾つかのヘッダを追加したかったり何かしたければ、レスポンスをいじくりまわすを止めるものはありません;あなたは常にSTDOUTにさらなるヘッダを出力せるようにprint()を呼び出すことができます。その時点でレスポンスがマーシャル化され、送信されるので、 SOAP::Transport::HTTP::Serverに戻す前にやっていることを確実に終わらせてください。

OptionalDispatcher 引数の説明についてはSOAP::Transport::HTTP::Serverをご覧下さい。


依存するモジュール

SOAP::Transport::HTTP::Server


作者

Keith Brown


ホーム Perlの小技  SOAP

ご意見、ご質問はこちらの掲示板で受け付けています。
またメールは河馬屋(Nifty)にお願いします。