Настройка Jetty SessionHandler

Я пытаюсь настроить постоянные сеансы на Jetty 9.2.3 на машине с Linux, работающей на Java8. Я добавил файл jetty-web.xml в свое приложение в папке ${jetty.home}/webapps/app/WEB-INF/ со следующим содержимым:

<?xml version="1.0"  encoding="ISO-8859-1"?>
<!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" "http://www.eclipse.org/jetty/configure.dtd">
<Configure class="org.eclipse.jetty.webapp.WebAppContext">
  <Set name="sessionHandler">
    <New class="org.eclipse.jetty.servlet.SessionHandler">
      <Arg>
        <New class="org.eclipse.jetty.servlet.HashSessionManager">
          <Set name="storeDirectory">/var/sessions</Set>
        </New>
      </Arg>
    </New>
  </Set>
</Configure>

но когда я пытаюсь запустить Jetty, я получаю следующую ошибку:

2014-09-29 13:08:12.989:WARN:oejw.JettyWebXmlConfiguration:main: Unable to process jetty-web.xml
java.lang.ClassNotFoundException: org.eclipse.jetty.servlet.SessionHandler
    at java.net.URLClassLoader$1.run(URLClassLoader.java:372)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:360)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    at org.eclipse.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:450)
    ...

Любая помощь будет принята с благодарностью.

1 ответ

Решение

Что ж, похоже, что пути к классам в документации Jetty9, объясняющие, как настроить постоянные сеансы, просто неверны. Как только я изменил пути с org.eclipse.jetty.servlet.* На org.eclipse.jetty.server.session.* Все работало как шарм.

Окончательный конфиг выглядел так:

<?xml version="1.0"  encoding="ISO-8859-1"?>
<!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" "http://www.eclipse.org/jetty/configure.dtd">
<Configure class="org.eclipse.jetty.webapp.WebAppContext">
  <Set name="sessionHandler">
    <New class="org.eclipse.jetty.server.session.SessionHandler">
      <Arg>
        <New class="org.eclipse.jetty.server.session.HashSessionManager">
          <Set name="storeDirectory">/var/sessions</Set>
        </New>
      </Arg>
    </New>
  </Set>
</Configure>
Другие вопросы по тегам