나는 바람둥이 아래에서 실행중인 jruby rails 애플리케이션을 사용하고 있습니다. URL의 잘못된 형식의 쿼리 문자열로 인해 랙이 예외 스택 추적이 프로덕션 모드로 표시되어 초크가 발생합니다. 그걸 우아하게 처리 할 수있는 방법이 있나. 난 레일 애플 리케이션에서 생성 된 예외를 처리합니다 config.exception_app 사용할 수 있다고 생각하지 않습니다. 이 경우, 예외는 레일즈 응용 프로그램에 도착하기 전에 생성됩니다. -이 경우는 ... 그냥 설정 SMT 랙 Y를 A (최소) 랙 오류 응용 프로그램을 구성 할 수있을 것입니다 보인다 (require 'my_error_app'; run MyErrorApp
루비 런타임이 부팅되면레일 앱에 도달하기 전에 랙에서 생성 된 예외를 처리하는 방법
org.jruby.exceptions.RaiseException: (ArgumentError) invalid %-encoding (/"{}\%#$())
at Module.decode_www_form_component(jar:file:/usr/local/apache-
tomcat/webapps/ROOT/WEB-INF/lib/gems-gems-jruby-jars-1.7.3-lib-jruby-stdlib-
1.7.3.jar!/META-INF/jruby.home/lib/ruby/1.9/uri/common.rb:898)
at Rack::Utils.unescape(/usr/local/apache-tomcat/webapps/ROOT/WEB-
INF/gems/gems/rack-1.4.5/lib/rack/utils.rb:41)
at Rack::Utils.parse_nested_query(/usr/local/apache-tomcat/webapps/ROOT/WEB-
INF/gems/gems/rack-1.4.5/lib/rack/utils.rb:94)
at org.jruby.RubyArray.map(org/jruby/RubyArray.java:2361)
at Rack::Utils.parse_nested_query(/usr/local/apache-tomcat/webapps/ROOT/WEB-
INF/gems/gems/rack-1.4.5/lib/rack/utils.rb:94)
at org.jruby.RubyArray.each(org/jruby/RubyArray.java:1613)
at Rack::Utils.parse_nested_query(/usr/local/apache-tomcat/webapps/ROOT/WEB-
INF/gems/gems/rack-1.4.5/lib/rack/utils.rb:93)
at Rack::Request.parse_query(/usr/local/apache-tomcat/webapps/ROOT/WEB-
INF/gems/gems/rack-1.4.5/lib/rack/request.rb:332)
at Rack::Request.POST(/usr/local/apache-tomcat/webapps/ROOT/WEB-
INF/gems/gems/rack-1.4.5/lib/rack/request.rb:209)
at Rack::MethodOverride.method_override(/usr/local/apache-
tomcat/webapps/ROOT/WEB-INF/gems/gems/rack-1.4.5/lib/rack/methodoverride.rb:26)
at Rack::MethodOverride.call(/usr/local/apache-tomcat/webapps/ROOT/WEB-
INF/gems/gems/rack-1.4.5/lib/rack/methodoverride.rb:14)
at Rack::Runtime.call(/usr/local/apache-tomcat/webapps/ROOT/WEB-
INF/gems/gems/rack-1.4.5/lib/rack/runtime.rb:17)
at ActiveSupport::Cache::Strategy::LocalCache::Middleware.call(/usr/local/apache-
tomcat/webapps/ROOT/WEB-INF/gems/gems/activesupport-
3.2.13/lib/active_support/cache/strategy/local_cache.rb:72)
at Rack::Lock.call(/usr/local/apache-tomcat/webapps/ROOT/WEB-
INF/gems/gems/rack-1.4.5/lib/rack/lock.rb:15)
at Rack::Cache::Context.forward(/usr/local/apache-tomcat/webapps/ROOT/WEB-
INF/gems/gems/rack-cache-1.2/lib/rack/cache/context.rb:136)
at Rack::Cache::Context.pass(/usr/local/apache-tomcat/webapps/ROOT/WEB-
INF/gems/gems/rack-cache-1.2/lib/rack/cache/context.rb:143)
at Rack::Cache::Context.invalidate(/usr/local/apache-tomcat/webapps/ROOT/WEB-
INF/gems/gems/rack-cache-1.2/lib/rack/cache/context.rb:155)
at Rack::Cache::Context.call!(/usr/local/apache-tomcat/webapps/ROOT/WEB-
INF/gems/gems/rack-cache-1.2/lib/rack/cache/context.rb:71)
at Rack::Cache::Context.call(/usr/local/apache-tomcat/webapps/ROOT/WEB-
INF/gems/gems/rack-cache-1.2/lib/rack/cache/context.rb:51)
at Rails::Engine.call(/usr/local/apache-tomcat/webapps/ROOT/WEB-
INF/gems/gems/railties-3.2.13/lib/rails/engine.rb:479)
at Rails::Application.call(/usr/local/apache-tomcat/webapps/ROOT/WEB-
INF/gems/gems/railties-3.2.13/lib/rails/application.rb:223)
at Rack::Handler::Servlet.call(file:/usr/local/apache-tomcat/webapps/ROOT/WEB-
INF/lib/gems-gems-jruby-rack-1.1.13.1-lib-jruby-rack-
1.1.13.1.jar!/rack/handler/servlet.rb:22)
자바 토지의 기본 설정은 애플리케이션 서버에 500 개의 템플릿을 구성하는 것입니다. 톰캣 – phoet
예외를 가로 채서 처리하도록 랙 미들웨어를 작성했습니다. – DrChanimal