I am newbie in the ruby world, after doing some research I can generate a demo rails application and testing on the webrick server
But I have encounter the problem when I start to deploy with tomcat I use warbler to generate war file for deployment successfully without error Copy the war under the folder of webapps on Tomcat 7.0 start the server and try to run on the browser I found that assets file is not accessible & the controller method cannot redirect to correct view, but display "We're sorry, but something went wrong." message
Config of the deployment I have try
JRuby 1.7.0 Gems jruby-rack 1.1.10, 1.0.10 rails 3.2.9, 3.2.0 warbler 1.3.6, 1.3.2 Tomcat 7.0.32
here is the access log from tomcat
127.0.0.1 - - [20/Nov/2012:13:56:38 +0800] "GET /demo/ HTTP/1.1" 200 5906 127.0.0.1 - - [20/Nov/2012:13:56:49 +0800] "GET /demo/assets/rails.png HTTP/1.1" 404 728 127.0.0.1 - - [20/Nov/2012:14:01:21 +0800] "GET /demo/order/add HTTP/1.1" 500 643
here is the log form tomcat
2012/11/20 13:56:18 org.apache.catalina.core.ApplicationContext log INFO: jruby 1.7.0 (1.9.3p203) 2012-10-22 ff1ebbe on Java HotSpot(TM) Client VM 1.6.0_34-b04 [Windows XP-x86] 2012/11/20 13:56:18 org.apache.catalina.core.ApplicationContext log INFO: using : runtime pool with acquire timeout of 10.0 seconds 2012/11/20 13:56:19 org.apache.catalina.core.ApplicationContext log ContextListener: contextInitialized() 2012/11/20 13:56:19 org.apache.catalina.core.ApplicationContext log SessionListener: contextInitialized() 2012/11/20 13:56:19 org.apache.catalina.core.ApplicationContext log ContextListener: attributeAdded('org.apache.jasper.compiler.TldLocationsCache', 'org.apache.jasper.compiler.TldLocationsCache@1858aa0') 2012/11/20 01:56:38 org.apache.catalina.core.ApplicationContext log INFO: pool was empty - getting new application instance 2012/11/20 01:56:47 org.apache.catalina.core.ApplicationContext log Started GET "/demo/assets/rails.png" for 127.0.0.1 at 2012-11-20 13:56:47 +0800 2012/11/20 01:56:47 org.apache.catalina.core.ApplicationContext log Connecting to database specified by database.yml 2012/11/20 01:56:49 org.apache.catalina.core.ApplicationContext log ActionController::RoutingError (No route matches [GET] "/assets/rails.png"): gems/gems/actionpack-3.2.9/lib/action_dispatch/middleware/debug_exceptions.rb:21:in `call' gems/gems/actionpack-3.2.9/lib/action_dispatch/middleware/show_exceptions.rb:56:in `call' gems/gems/railties-3.2.9/lib/rails/rack/logger.rb:32:in `call_app' gems/gems/railties-3.2.9/lib/rails/rack/logger.rb:16:in `call' gems/gems/activesupport-3.2.9/lib/active_support/tagged_logging.rb:22:in `tagged' gems/gems/railties-3.2.9/lib/rails/rack/logger.rb:16:in `call' gems/gems/actionpack-3.2.9/lib/action_dispatch/middleware/request_id.rb:22:in `call' gems/gems/rack-1.4.1/lib/rack/methodoverride.rb:21:in `call' gems/gems/rack-1.4.1/lib/rack/runtime.rb:17:in `call' gems/gems/activesupport-3.2.9/lib/active_support/cache/strategy/local_cache.rb:72:in `call' gems/gems/rack-1.4.1/lib/rack/lock.rb:15:in `call' gems/gems/rack-cache-1.2/lib/rack/cache/context.rb:136:in `forward' gems/gems/rack-cache-1.2/lib/rack/cache/context.rb:245:in `fetch' gems/gems/rack-cache-1.2/lib/rack/cache/context.rb:185:in `lookup' gems/gems/rack-cache-1.2/lib/rack/cache/context.rb:66:in `call!' gems/gems/rack-cache-1.2/lib/rack/cache/context.rb:51:in `call' gems/gems/railties-3.2.9/lib/rails/engine.rb:479:in `call' gems/gems/railties-3.2.9/lib/rails/application.rb:223:in `call' file:/lib/jruby-rack-1.1.10.jar!/rack/handler/servlet.rb:22:in `call' 2012/11/20 14:01:21 org.apache.catalina.core.ApplicationContext log Started GET "/demo/order/add" for 127.0.0.1 at 2012-11-20 14:01:21 +0800 2012/11/20 14:01:21 org.apache.catalina.core.ApplicationContext log Processing by OrderController#add as HTML 2012/11/20 14:01:21 org.apache.catalina.core.ApplicationContext log Rendered order/add.html.erb within layouts/application (16.0ms) 2012/11/20 14:01:21 org.apache.catalina.core.ApplicationContext log Completed 500 Internal Server Error in 78ms
It's seem that the routing problem is occur, is it the problem when I deploy the rails application other than the ROOT location?
I have research the similar topic of this, I have try some solution, such as adding the below command at production.rb, but no help.
config.action_controller.relative_url_root = "/demo"
Thanks for your solutions
Did you precompile your assets before warbling?
You need to run rake assets:precompile
to generate static content before running warble