ActionWebServiceで、引数に2個XMLの特殊文字が連続するとエラーになる。
(追記) 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。原因を調査中。