2010-11-24 19 views
0

私はRails 3アプリケーションをTomcat 6サーバーに配備しています。私はwarbleを使用してプロジェクトをwarファイルにパッケージ化していますが、これまでのところ問題はありませんでした。アプリケーションにcache_sweeperを追加しました。アプリケーションを起動しようとすると、標準の500エラーページが届きました。私のログを見るとcache_sweeperメソッドが見つかりません

は、私はこれを見た:

org.jruby.rack.RackInitializationException: undefined method `cache_sweeper' for ApplicationController:Class 

それはcache_sweeper方法を見つけることができませんか?それはRailsの一部ではありませんか?

これは開発モードでは発生しませんが、私はMRIルビーを使用しており、代わりにレールサーバーを使用しています。

誰でもアイデアがありますか?

全エラー:

SEVERE: Application Error 
org.jruby.rack.RackInitializationException: undefined method `cache_sweeper' for ApplicationController:Class 
    from C:/bin/apache-tomcat-6.0.29/webapps/rails3app/WEB-INF/app/controllers/application_controller.rb:239:in `require' 
    from C:/bin/apache-tomcat-6.0.29/webapps/rails3app/WEB-INF/gems/gems/activesupport-3.0.0/lib/active_support/dependencies.rb:239:in `require' 
    from C:/bin/apache-tomcat-6.0.29/webapps/rails3app/WEB-INF/gems/gems/activesupport-3.0.0/lib/active_support/dependencies.rb:227:in `load_dependency' 
    from C:/bin/apache-tomcat-6.0.29/webapps/rails3app/WEB-INF/gems/gems/activesupport-3.0.0/lib/active_support/dependencies.rb:239:in `require' 
    from C:/bin/apache-tomcat-6.0.29/webapps/rails3app/WEB-INF/gems/gems/activesupport-3.0.0/lib/active_support/dependencies.rb:346:in `require_or_load' 
    from C:/bin/apache-tomcat-6.0.29/webapps/rails3app/WEB-INF/gems/gems/activesupport-3.0.0/lib/active_support/dependencies.rb:491:in `load_missing_constant' 
    from C:/bin/apache-tomcat-6.0.29/webapps/rails3app/WEB-INF/gems/gems/activesupport-3.0.0/lib/active_support/dependencies.rb:183:in `const_missing' 
    from C:/bin/apache-tomcat-6.0.29/webapps/rails3app/WEB-INF/gems/gems/activesupport-3.0.0/lib/active_support/dependencies.rb:181:in `each' 
    ... 39 levels... 
    from file:/C:/bin/apache-tomcat-6.0.29/webapps/rails3app/WEB-INF/lib/jruby-rack-1.0.3.jar!/vendor/rack-1.2.1/rack/builder.rb:46:in `initialize' 
    from <script>:2:in `new' 
    from <script>:2 

    at org.jruby.rack.DefaultRackApplicationFactory$4.init(DefaultRackApplicationFactory.java:184) 
    at org.jruby.rack.DefaultRackApplicationFactory.getApplication(DefaultRackApplicationFactory.java:59) 
    at org.jruby.rack.PoolingRackApplicationFactory.getApplication(PoolingRackApplicationFactory.java:94) 
    at org.jruby.rack.servlet.DefaultServletDispatcher.process(DefaultServletDispatcher.java:36) 
    at org.jruby.rack.RackFilter.doFilter(RackFilter.java:59) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) 
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) 
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) 
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) 
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) 
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298) 
    at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:861) 
    at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:579) 
    at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1584) 
    at java.lang.Thread.run(Thread.java:619) 

答えて

0

何らかの理由で、あなたはJRubyの/さえずりを使用している場合、モジュールを含める必要があります。ただし、MRIとレールサーバーを使用する場合は、この手順は必要ありません。

私は私のApplicationControllerにこれを追加し、それが働いた:

class ApplicationController < ActionController::Base 
    include ActionController::Caching::Sweeping if defined?(JRUBY_VERSION) 
    ... 
end 
関連する問題