Hi,
My rails app has a java applet that communicates over http as a
standard web client. It works perfectly locally using WebRicks but
after putting all behind apache2 + fastcgi, applet communication
stopped working. I found that the trouble is caused by a rule:
RewriteRule ^([^.]+)$ $1.html [QSA]
I had to replace it to
RewriteRule ^([^.]+)$ /hdchat/dispatch.fcgi?$1 [QSA,L]
because it ate those requests generated by my applet. The following
request
80.98.xxx.yyyy- - [23/Jun/2005:20:25:12 +0200] "POST /hdchat/
operator_client/terminate HTTP/1.1" 200 - "-" "Jakarta
Commons-
HttpClient/3.0-rc2"
badly transformed to
Processing OperatorClientController#terminate (for
80.98.xxx.yyyy 8 at Thu Jun 23 19:39:22 CEST 2005)
Parameters:
{"operator_client/terminate.html/terminate"=>nil,
"action"=>"terminate",
"controller"=>"operator_client"}
instead of
Processing OperatorClientController#terminate (for
80.98.xxx.yyyy at Wed Jun 22 08:56:55 CEST 2005)
Parameters: {"action"=>"terminate",
"controller"=>"operator_client"}
The result is:
Processing OperatorClientController#terminate (for 80.98.xxx.yyyy at
Thu Jun 23 20:51:59 CEST 2005)
Parameters: {"operator_client/terminate.html/terminate"=>nil,
"action"=>"terminate",
"controller"=>"operator_client"}
ActionController::UnknownAction (No action responded to terminate):
/usr/lib/ruby/gems/1.8/gems/actionpack-1.8.1/lib/
action_controller/filters.rb:294:in `perform_action_without_benchmark''
/usr/lib/ruby/gems/1.8/gems/actionpack-1.8.1/lib/
action_controller/benchmarking.rb:37:in `perform_action_without_rescue''
/usr/lib/ruby/gems/1.8/gems/actionpack-1.8.1/lib/
action_controller/benchmarking.rb:37:in `measure''
/usr/lib/ruby/gems/1.8/gems/actionpack-1.8.1/lib/
action_controller/benchmarking.rb:37:in `perform_action_without_rescue''
/usr/lib/ruby/gems/1.8/gems/actionpack-1.8.1/lib/
action_controller/rescue.rb:79:in `perform_action''
/usr/lib/ruby/gems/1.8/gems/actionpack-1.8.1/lib/
action_controller/base.rb:330:in `send''
/usr/lib/ruby/gems/1.8/gems/actionpack-1.8.1/lib/
action_controller/base.rb:330:in `process''
/usr/lib/ruby/gems/1.8/gems/actionpack-1.8.1/lib/
action_controller/base.rb:273:in `process''
/usr/lib/ruby/gems/1.8/gems/rails-0.12.1/lib/dispatcher.rb:32:in
`dispatch''
/root/webapps/hdchat/public/dispatch.fcgi:14
/root/webapps/hdchat/public/dispatch.fcgi:12:in `each_cgi''
/usr/lib/ruby/gems/1.8/gems/fcgi-0.8.6.1/./fcgi.rb:597:in `each''
/usr/lib/ruby/gems/1.8/gems/fcgi-0.8.6.1/./fcgi.rb:597:in
`each_cgi''
/root/webapps/hdchat/public/dispatch.fcgi:12
Itt kills the communication between applet and rails. Other web
requests coming from browser are fine.
Please help me understanding what the heck is going on.
Where is the bug and where to hit to fix :)
Thanks,
Gábor