Sha256: dfd57e073e029384736f3a1d55c27fdc948f77b45f2ff56b58a032494735953d
Contents?: true
Size: 1.32 KB
Versions: 3
Compression:
Stored size: 1.32 KB
Contents
require 'dispatcher' require 'net/ajp13/server' require File.dirname(__FILE__) + File::SEPARATOR + 'rails-wrapper.rb' class AjpRailsDispatcher < Dispatcher class << self # Dispatch the given AJP request, using the given session options, and # returns the response object. #-- # Be sure to handle the exceptions it raises # on multipart requests (EOFError and ArgumentError). #++ def dispatch(ajp_req, session_options, server_environments) request = AjpRailsRequest.new(ajp_req, session_options, server_environments) response = AjpRailsResponse.new prepare_application ActionController::Routing::Routes.recognize!(request).process(request, response).to_ajp_response(ajp_req.output_cookies) rescue Object => exception puts exception.message + ":" + exception.backtrace.join("\n") failsafe_response(500) do ActionController::Base.process_with_exception(request, AjpRailsResponse.new, exception).to_ajp_response(ajp_req.output_cookies) end ensure # Do not give a failsafe response here. reset_after_dispatch end # If the block raises, send status code as a last-ditch response. def failsafe_response(status) yield rescue Object begin Net::AJP13::Response.new(status) rescue Object end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
ajp-rails-0.0.0 | lib/ajp-rails/ajp_rails_dispatcher.rb |
ajp-rails-0.0.1 | lib/ajp-rails/ajp_rails_dispatcher.rb |
ajp-rails-0.0.2 | lib/ajp-rails/ajp_rails_dispatcher.rb |