首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Jruby 1.6 + Rails 3和Java servlet会话存储问题

Jruby 1.6 + Rails 3和Java servlet会话存储问题
EN

Stack Overflow用户
提问于 2011-12-13 15:47:45
回答 1查看 630关注 0票数 0

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

早些时候,我经常使用:

代码语言:javascript
复制
ActionController::Base.session_store = :java_servlet_store if defined?($servlet_context)

在config/initializers/session_store.rb中

现在,在同一个文件中,我这样做:

代码语言:javascript
复制
Mb30::Application.config.session_store = :java_servlet_store if defined?($servlet_context)

生产中的早期版本用于生成jsessionid,并与会话很好地配合使用。因为我在Tomcat中使用了Java servlet存储,所以我在web.xml中使用了默认的会话超时特性,并且它工作得非常好。

然而,在升级之后,我在Firebug中看到已经创建了一个jsession id。但与此同时,还创建了一个Rails _session_id,终止jsessionid并不会终止Rails会话id。此外,我的应用程序上有一个HTTP包装器API,它可以获取响应并将其作为xml发送。这里我认为jsessionid与Rails会话不匹配,因为在API中我无法获取会话对象,因为它们是在Rails会话中设置的。

以下是我的珍品:

代码语言:javascript
复制
*** 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)

谁能告诉我这里的问题可能是什么?

EN

回答 1

Stack Overflow用户

发布于 2011-12-29 22:32:47

我假设Mb30::Application是您的Rails应用程序,而Rails应用程序本身就是Rails::Application的子类,所以配置设置可能不会应用到ActionController::Base中。

尝试将此内容添加到config/application.rb

代码语言:javascript
复制
config.action_dispatch.session_store = :java_servlet_store

以及在config/initializers/session_store.rb中为会话存储设置初始化器

代码语言:javascript
复制
Mb30::Application.config.session_store :java_servlet_store

初始化器可能不是必需的;我在设置自定义DB会话存储时使用了它,因为我遇到了类似的问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8485843

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档