1

我想将 Jetty 配置为在磁盘上保留会话,以便重新启动 Jetty 不会丢失会话,但是通过阅读文档我还没有让它工作。

我正在使用Jetty Maven 插件( org.mortbay.jetty:jetty-maven-plugin 7.4.3.v20110701) 运行 Jetty。

为 Maven Jetty 插件启用持久性告诉在插件HashSessionManagersessionHandler配置部分中设置 ,但那里的示例似乎是针对旧的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 是在服务器运行时创建的,但那里没有写任何东西,据我所知,会话不会持续存在。

那么,我错过了什么?

4

1 回答 1

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 wiki 复制了错字。

于 2012-02-01T10:12:38.737 回答