Question

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

Was it helpful?

Solution

Did you precompile your assets before warbling?

You need to run rake assets:precompile to generate static content before running warble

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top