I am new to the world of rubies, after some research I can create a demo rails app and test it on the webrick server.
But I ran into a problem when I start deploying with tomcat. I use warbler to create a war file for deployment without errors. Copy the war under the webapps folder on Tomcat 7.0, start the server and try to run it in the browser. I found that the resource file is unavailable and the controller method cannot redirect to the correct view, but displays "We're sorry, but something went wrong." message
Deployment configuration I tried
Juby 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 tomcat log form
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 seems that a routing problem is occurring, is there a problem when deploying a rails application other than the ROOT location?
I have a research on a similar topic to this, I tried some solution, for example adding the command below on production.rb, but it didn’t help.
config.action_controller.relative_url_root = "/demo"
Thank you for your decision.