Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JRuby1.6+Rails3和JavaServlet会话存储问题_Jruby_Rails 3 Upgrade - Fatal编程技术网

JRuby1.6+Rails3和JavaServlet会话存储问题

JRuby1.6+Rails3和JavaServlet会话存储问题,jruby,rails-3-upgrade,Jruby,Rails 3 Upgrade,我正在从JRuby 1.5升级到JRuby 1.6.3,从Rails 2.3.5升级到Rails 3.0 早些时候,我曾使用: ActionController::Base.session_store = :java_servlet_store if defined?($servlet_context) 在config/initializers/session_store.rb中 现在,在同一个文件中,我执行以下操作: Mb30::Application.config.session_stor

我正在从JRuby 1.5升级到JRuby 1.6.3,从Rails 2.3.5升级到Rails 3.0

早些时候,我曾使用:

ActionController::Base.session_store = :java_servlet_store if defined?($servlet_context)
在config/initializers/session_store.rb中

现在,在同一个文件中,我执行以下操作:

Mb30::Application.config.session_store = :java_servlet_store if defined?($servlet_context)
生产中的早期版本用于生成jsessionid和work 很好,会话。因为我在Tomcat中使用了Javaservlet存储,所以我使用了 web.xml中的默认会话超时功能,它工作得非常好

但是升级后,我在Firebug中看到有一个jsession id 创建。但同时也创建了一个Rails会话id 杀死jsessionid不会杀死Rails会话id。我也 在我的应用程序上有一个HTTP包装器API,它可以获得响应和 将其作为xml发送。在这里,我发现jsessionid与 Rails会话,因此在API中我无法获取该会话 对象,因为它们是在Rails会话中设置的

以下是我的珍宝:

*** LOCAL GEMS ***

abstract (1.0.0)
actionmailer (3.0.0)
actionpack (3.0.0)
activemodel (3.0.0)
activerecord (3.0.0)
activerecord-jdbc-adapter (0.9.7 java)
activerecord-jdbcpostgresql-adapter (0.9.7 java)
activeresource (3.0.0)
activesupport (3.0.0)
arel (1.0.0)
bouncy-castle-java (1.5.0146.1)
builder (2.1.2)
bundler (1.0.18)
erubis (2.6.6)
i18n (0.4.1)
jdbc-postgres (8.4.701 java)
jrails (0.6.0)
jruby-jars (1.6.3)
jruby-openssl (0.7.2, 0.7)
jruby-rack (1.1.1, 1.0.10)
mail (2.2.5)
mime-types (1.16)
polyglot (0.3.2)
rack (1.2.1)
rack-mount (0.6.12)
rack-test (0.5.4)
rails (3.0.0)
railties (3.0.0)
rake (0.9.2, 0.8.7)
rubyzip (0.9.4)
sources (0.0.1)
thor (0.14.0)
treetop (1.4.10)
tzinfo (0.3.29, 0.3.23)
warbler (1.2.0)
有人能告诉我这里的问题是什么吗?

我假设Mb30::Application是您的Rails应用程序,它本身就是Rails::Application的一个子类,因此配置设置可能没有进入ActionController::Base

尝试将其添加到config/application.rb:

以及在config/initializers/session_store.rb中为会话存储设置初始值设定项:


可能不需要初始值设定项;我在设置自定义DB会话存储时使用过此选项,因为我遇到了类似的问题。

我尝试过,但仍然无效。它仍然像一个Cookie存储,并一直调用Set Cookie
config.action_dispatch.session_store = :java_servlet_store
Mb30::Application.config.session_store :java_servlet_store