読者です 読者をやめる 読者になる 読者になる

ActionWebServiceで、引数に2個XMLの特殊文字が連続するとエラーになる。

Ruby Rails AWS 未解決

(追記) http://d.hatena.ne.jp/koseki2/20070318/AwsDoubleCharaEntity2 に続きがあります。追記終わり。


下の記事の手順に従って、AWSを使うシンプルなアプリケーションを作成した後、client_controller.rbの、get_infoメソッドを次のように変えてみる。

class ClientController < ApplicationController
  def get_info
    client = ActionWebService::Client::Soap.new(TrialApi, "http://localhost:3000/trial/api")
    render :text => client.get_info("<<")
  end
end

client.get_info("<<")のように、文字実体参照に変換される文字2個をAWSに渡す。すると、

TrialController: missing default helper path trial_helper
You have a nil object when you didn't expect it!
You might have expected an instance of Array.
The error occured while evaluating nil.include?
/usr/lib/ruby/gems/1.8/gems/actionpack-1.12.5/lib/action_controller/cgi_ext/cgi_methods.rb:49:in `parse_request_parameters'
/usr/lib/ruby/gems/1.8/gems/actionpack-1.12.5/lib/action_controller/cgi_ext/cgi_methods.rb:47:in `each'
/usr/lib/ruby/gems/1.8/gems/actionpack-1.12.5/lib/action_controller/cgi_ext/cgi_methods.rb:47:in `parse_request_parameters'
/usr/lib/ruby/gems/1.8/gems/actionpack-1.12.5/lib/action_controller/cgi_process.rb:71:in `request_parameters'
:
:

のようなエラーが出る。"<>" "&&"などで試しても同じエラーが発生する。"<a>"はエラーにならない。

AWSのバージョンは1.1.6。原因を調査中。