WebORBでサービスを呼ばずに、任意のオブジェクトを返却する

RailsでWebORBを利用すると。weborb_controller.rbが$RIALS_ROOT/app/controller配下に
出来ていると思う。普段はこいつを意識する必要なんて無いのだが、ある条件時には
サービスの呼び出しをせずに、任意のオブジェクトを返却したくなったのでちょっとやってみた。


WebORBと言ったところで、所詮はコントローラがリクエストを受け取ってサービスの
呼び出しを行っているだけなので、コントローラをゴリゴリ書き換えればよいのだが、
ちょっと困ってしまうのが、バイナリを返却しなくちゃならないってところ。


一応、下記の方法で動いているっぽい

      request_message.body_parts.each do |body|
        body.response_data_object = { :hoge => "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" }
        body.service_uri = ""
        body.response_uri << Constants::ONRESULT
      end

単純にresponse_dataに値を入れれば大丈夫かなぁと、思っていたのだが、そうは問屋が下ろしてくれずに
Flash側で取得する事が出来なかった。で、WebORBのinvoke.rbを眺めていたら

    invocation_body.service_uri = ""
    invocation_bosy.response_uri << Constants::ONRESULT

ってのを、見かけたので、とりあえず書いてみたら動いた。


同じinvoke.rb内で例外を補足しているところで、response_uri に Constants::ONSTATUSを
設定していたので、もしかしたらエラーとして返せるのかなぁって思ってみる。