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