我想将Jetty配置为在磁盘上保留会话,这样重启Jetty就不会丢失会话,但是通过阅读文档我还没有使用它。
我正在使用Jetty Maven plugin(org.mortbay.jetty:jetty-maven-plugin 7.4.3.v20110701
)运行Jetty。
Enabling Persistence for the Maven Jetty Plugin告诉你在插件的HashSessionManager
配置部分设置sessionHandler
,但是旧的maven-jetty-plugin
似乎有一个示例,而不是新的jetty-maven-plugin
。
我尝试像这样修复类名(我还必须为jetty-server jar添加一个依赖项,否则我得到了ClassNotFoundExceptions):
<webAppConfig implementation="org.mortbay.jetty.plugin.JettyWebAppContext">
<defaultsDescriptor>${project.build.outputDirectory}/META-INF/webdefault.xml</defaultsDescriptor>
<contextPath>${jetty.contextRoot}</contextPath>
<sessionHandler implementation="org.eclipse.jetty.server.session.SessionHandler">
<sessionManager implementation="org.eclipse.jetty.server.session.HashSessionManager">
<storeDirectory>${basedir}/target/jetty-sessions</storeDirectory>
</sessionManager>
</sessionHandler>
</webAppConfig>
目录target / jetty-sessions在服务器运行时创建,但没有写入任何内容,并且会话不会持久存在。
那么,我错过了什么?
答案 0 :(得分:1)
文档列出了错误的类名。使用此代码段:
<sessionHandler implementation="org.eclipse.jetty.server.session.SessionHandler">
<sessionManager implementation="org.eclipse.jetty.server.session.HashSessionManager">
<storeDirectory>${basedir}/target/sessions</storeDirectory>
<idleSavePeriod>1</idleSavePeriod>
</sessionManager>
</sessionHandler>
我没有Eclipse登录来修复它们的wiki。也许你可以抓住一个并在那里修复它来帮助别人。
更新:我在配置中添加了idleSavePeriod
。我首先想到你只是从Eclipse维基中复制了错字。