如何使用Jetty 7和jetty-maven-plugin保持会话?

时间:2011-09-27 09:23:02

标签: jetty maven-jetty-plugin

我想将Jetty配置为在磁盘上保留会话,这样重启Jetty就不会丢失会话,但是通过阅读文档我还没有使用它。

我正在使用Jetty Maven pluginorg.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在服务器运行时创建,但没有写入任何内容,并且会话不会持久存在。

那么,我错过了什么?

1 个答案:

答案 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维基中复制了错字。