1

Jettyをディスク上に永続化するように構成して、Jettyを再起動してもセッションが失われないようにしたいのですが、ドキュメントを読んでもまだ機能していません。

Jetty Mavenプラグイン( )を使用してJettyを実行していorg.mortbay.jetty:jetty-maven-plugin 7.4.3.v20110701ます。

Maven Jettyプラグインの永続性を有効にする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>

サーバーの実行時にディレクトリターゲット/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ログインを持っていません。たぶん、あなたはそれをつかんで、他の人を助けるためにそこでそれを修正することができます。

更新:idleSavePeriod構成に追加しました。Eclipsewikiからタイプミスをコピーしたと最初に思いました。

于 2012-02-01T10:12:38.737 に答える