2009-01-18(Sun) [長年日記]
_ Rack動かず
Rackを試してみようと思ったら、エラー!?
- rack 0.9.1
- rubygems 1.3.1
- commnad-line
rackup hello.ru
- hello.ru
require 'hello' run HelloApp.new
- hello.rb
require 'rubygems' require 'rack' class HelloApp def call(env) [200, {"Content-Type" => "text/plain"}, ["Hello, Rack"]] end end
- No Content-Length header found ... Content-Length ヘッダ必須?
[2009-01-18 23:33:48] INFO WEBrick 1.3.1 [2009-01-18 23:33:48] INFO ruby 1.8.6 (2008-08-11) [i686-linux] [2009-01-18 23:33:48] WARN TCPServer Error: Address family not supported by protocol - socket(2) [2009-01-18 23:33:48] INFO WEBrick::HTTPServer#start: pid=12379 port=9292 Rack::Lint::LintError: No Content-Length header found /usr/local/lib/ruby/gems/1.8/gems/rack-0.9.1/lib/rack/lint.rb:16:in `assert' /usr/local/lib/ruby/gems/1.8/gems/rack-0.9.1/lib/rack/lint.rb:425:in `check_content_length' /usr/local/lib/ruby/gems/1.8/gems/rack-0.9.1/lib/rack/lint.rb:52:in `_call' /usr/local/lib/ruby/gems/1.8/gems/rack-0.9.1/lib/rack/lint.rb:33:in `call' /usr/local/lib/ruby/gems/1.8/gems/rack-0.9.1/lib/rack/showexceptions.rb:23:in `call' /usr/local/lib/ruby/gems/1.8/gems/rack-0.9.1/lib/rack/commonlogger.rb:20:in `_call' /usr/local/lib/ruby/gems/1.8/gems/rack-0.9.1/lib/rack/commonlogger.rb:13:in `call' /usr/local/lib/ruby/gems/1.8/gems/rack-0.9.1/lib/rack/handler/webrick.rb:40:in `service' /usr/local/lib/ruby/1.8/webrick/httpserver.rb:104:in `service' /usr/local/lib/ruby/1.8/webrick/httpserver.rb:65:in `run' /usr/local/lib/ruby/1.8/webrick/server.rb:173:in `start_thread' /usr/local/lib/ruby/1.8/webrick/server.rb:162:in `start' /usr/local/lib/ruby/1.8/webrick/server.rb:162:in `start_thread' /usr/local/lib/ruby/1.8/webrick/server.rb:95:in `start' /usr/local/lib/ruby/1.8/webrick/server.rb:92:in `each' /usr/local/lib/ruby/1.8/webrick/server.rb:92:in `start' /usr/local/lib/ruby/1.8/webrick/server.rb:23:in `start' /usr/local/lib/ruby/1.8/webrick/server.rb:82:in `start' /usr/local/lib/ruby/gems/1.8/gems/rack-0.9.1/lib/rack/handler/webrick.rb:12:in `run' /usr/local/lib/ruby/gems/1.8/gems/rack-0.9.1/bin/rackup:172 /usr/local/bin/rackup:19:in `load' /usr/local/bin/rackup:19 192.168.63.1 - - [18/Jan/2009 23:34:14] "GET / HTTP/1.1" 500 61251 0.0780
- 再チャレンジ
class HelloApp def call(env) [200, {"Content-Type" => "text/plain", "Content-Length" => 11}, ["Hello, Rack"]] end end
[2009-01-18 23:36:16] INFO WEBrick 1.3.1 [2009-01-18 23:36:16] INFO ruby 1.8.6 (2008-08-11) [i686-linux] [2009-01-18 23:36:16] WARN TCPServer Error: Address family not supported by protocol - socket(2) [2009-01-18 23:36:16] INFO WEBrick::HTTPServer#start: pid=12395 port=9292 Rack::Lint::LintError: header values must respond to #each, but the value of 'Content-Length' doesn't (is Fixnum) /usr/local/lib/ruby/gems/1.8/gems/rack-0.9.1/lib/rack/lint.rb:16:in `assert' /usr/local/lib/ruby/gems/1.8/gems/rack-0.9.1/lib/rack/lint.rb:342:in `check_headers' /usr/local/lib/ruby/gems/1.8/gems/rack-0.9.1/lib/rack/lint.rb:325:in `each' /usr/local/lib/ruby/gems/1.8/gems/rack-0.9.1/lib/rack/lint.rb:325:in `check_headers' /usr/local/lib/ruby/gems/1.8/gems/rack-0.9.1/lib/rack/lint.rb:49:in `_call' /usr/local/lib/ruby/gems/1.8/gems/rack-0.9.1/lib/rack/lint.rb:33:in `call' /usr/local/lib/ruby/gems/1.8/gems/rack-0.9.1/lib/rack/showexceptions.rb:23:in `call' /usr/local/lib/ruby/gems/1.8/gems/rack-0.9.1/lib/rack/commonlogger.rb:20:in `_call' /usr/local/lib/ruby/gems/1.8/gems/rack-0.9.1/lib/rack/commonlogger.rb:13:in `call' /usr/local/lib/ruby/gems/1.8/gems/rack-0.9.1/lib/rack/handler/webrick.rb:40:in `service' /usr/local/lib/ruby/1.8/webrick/httpserver.rb:104:in `service' /usr/local/lib/ruby/1.8/webrick/httpserver.rb:65:in `run' /usr/local/lib/ruby/1.8/webrick/server.rb:173:in `start_thread' /usr/local/lib/ruby/1.8/webrick/server.rb:162:in `start' /usr/local/lib/ruby/1.8/webrick/server.rb:162:in `start_thread' /usr/local/lib/ruby/1.8/webrick/server.rb:95:in `start' /usr/local/lib/ruby/1.8/webrick/server.rb:92:in `each' /usr/local/lib/ruby/1.8/webrick/server.rb:92:in `start' /usr/local/lib/ruby/1.8/webrick/server.rb:23:in `start' /usr/local/lib/ruby/1.8/webrick/server.rb:82:in `start' /usr/local/lib/ruby/gems/1.8/gems/rack-0.9.1/lib/rack/handler/webrick.rb:12:in `run' /usr/local/lib/ruby/gems/1.8/gems/rack-0.9.1/bin/rackup:172 /usr/local/bin/rackup:19:in `load' /usr/local/bin/rackup:19 192.168.63.1 - - [18/Jan/2009 23:36:20] "GET / HTTP/1.1" 500 67370 0.0828
うーむ...どうしたらよいのだ?
(追記) example/lobster は動いた。なんでだめなんやろう?
[200, {"Content-Type" => "text/plain", "Content-Length" => "11"}, ["Hello, Rack"]]