[英]Deploy jruby project to tomcat in windows platform
I am newbie in the ruby world, after doing some research I can generate a demo rails application and testing on the webrick server 我是红宝石世界的新手,在做了一些研究之后,我可以在webrick服务器上生成一个demo rails应用程序并进行测试
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." 但是当我开始使用tomcat部署时我遇到了问题我使用warbler生成war文件以便成功部署而不会出现错误复制warcat在Tomcat 7.0上的webapps文件夹下启动服务器并尝试在浏览器上运行我发现资产文件无法访问,控制器方法无法重定向到正确的视图,但显示“我们很抱歉,但出了点问题。” 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 这是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 这是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? 看起来路由问题出现了,当我部署除ROOT位置以外的rails应用程序时,问题是什么?
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. 我研究了类似的主题,我尝试了一些解决方案,例如在production.rb中添加以下命令,但没有帮助。
config.action_controller.relative_url_root = "/demo"
Thanks for your solutions 谢谢你的解决方案
Did you precompile your assets before warbling? 您是否在进行warbling之前预先编译了您的资产?
You need to run rake assets:precompile
to generate static content before running warble
您需要运行rake assets:precompile
以在运行warble
之前生成静态内容
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.