Ruby 1.8.7 リファレンスマニュアル > ライブラリ一覧 > soap/rpc/soapletライブラリ > SOAP::RPC::SOAPletクラス

class SOAP::RPC::SOAPlet + WEBrick::HTTPServlet::AbstractServlet

クラスの継承リスト: SOAP::RPC::SOAPlet < WEBrick::HTTPServlet::AbstractServlet < Object < Kernel

要約

特異メソッド

get_instance(server, *options) -> WEBrick::HTTPServlet::AbstractServlet

new(server, *options) を呼び出してサーブレットを生成して返します。 WEBrick::HTTPServer オブジェクトは実際にはこの get_instance メソッドを呼び出して サーブレットを生成します。

特に理由が無い限り AbstractServlet のサブクラスがこのメソッドを再定義する必要はありません。

[PARAM] server:
WEBrick::HTTPServer#mount 第3引数以降に指定された値がそのまま与えられます。
[PARAM] options:
WEBrick::HTTPServer#mount 第3引数以降に指定された値がそのまま与えられます。
new(router = nil)

[TODO]

new(server, *options) -> WEBrick::HTTPServlet::AbstractServlet

サーブレットを生成して返します。 WEBrick::HTTPServer オブジェクトは server に自身を指定してサーブレットを生成します。

[PARAM] server:
サーブレットを生成する WEBrick::HTTPServer オブジェクトを指定します。
[PARAM] options:
WEBrick::HTTPServer#mount 第3引数以降に指定された値がそのまま与えられます。

インスタンスメソッド

add_ervant(obj, namespace)

[TODO]

allow_content_encoding_gzip=(allow)

[TODO]

app_scope_router

[TODO]

do_GET(request, response) -> ()
do_HEAD(request, response) -> ()
do_POST(request, response) -> ()
do_PUT(request, response) -> ()
do_DELETE(request, response) -> ()
do_OPTIONS(request, response) -> ()

自身の service メソッドから HTTP のリクエストに応じて 呼ばれるメソッドです。AbstractServlet のサブクラスはこれらのメソッドを適切に実装し なければいけません。返り値は特に規定されていません。

クライアントが使う可能性のある RFC で定義された HTTP のメソッドはすべて実装する必要があります。 クライアントからのリクエストに使われないと分かっているメソッドは実装しなくてもかまいません。 実装されていない HTTP メソッドであった場合、自身の service メソッドが 例外を発生させます。

このメソッドが呼ばれた時点では、クライアントからのリクエストに含まれる Entity Body の読み込みは まだ行われていません。WEBrick::HTTPRequest#query, WEBrick::HTTPRequest#body などの メソッドが読ばれた時点で読み込みが行われます。クライアントから巨大なデータが送られてくることを考慮して ユーザはプログラミングを行うべきです。

[PARAM] request:
クライアントからのリクエストを表す WEBrick::HTTPRequest オブジェクトです。
[PARAM] response:
クライアントへのレスポンスを表す WEBrick::HTTPResponse オブジェクトです。

例:

require 'webrick'
class HogeServlet < WEBrick::HTTPServlet::AbstractServlet
  def do_GET(req, res)
     res.body = 'hoge'
  end
end

srv = WEBrick::HTTPServer.new({ :DocumentRoot => './',
                                :BindAddress => '127.0.0.1',
                                :Port => 20080})
srv.mount('/', HogeServlet)
trap("INT"){ srv.shutdown }
srv.start
do_GET(req, res)

[TODO]

do_POST(req, res)

[TODO]

get_instance(config, *options)

[TODO]

options

[TODO]

require_path_info?

[TODO]

service(request, response) -> ()

指定された WEBrick::HTTPRequest オブジェクト request の WEBrick::HTTPRequest#request_method に応じて、 自身の do_GET, do_HEAD, do_POST, do_OPTIONS... いずれかのメソッドを request と response を引数として呼びます。

WEBrick::HTTPServer オブジェクトはクライアントからのリクエストがあるたびに サーブレットオブジェクトを生成し service メソッドを呼びます。

特に理由が無い限り AbstractServlet のサブクラスがこのメソッドを定義する必要はありません。

[PARAM] request:
クライアントからのリクエストを表す WEBrick::HTTPRequest オブジェクトです。
[PARAM] response:
クライアントへのレスポンスを表す WEBrick::HTTPResponse オブジェクトです。
[EXCEPTION] WEBrick::HTTPStatus::MethodNotAllowed:
指定された WEBrick::HTTPRequest オブジェクト req が自身に定義されていない HTTP のメソッドであった場合発生します。
class SOAP::RPC::SOAPlet