Как настроить встраиваемый Jetty для использования JDB C сессий - PullRequest
0 голосов
/ 05 марта 2020

Я использую встроенный Jetty (группа: 'org.eclipse.jetty', имя: 'jetty-webapp', версия: '9.4.27.v20200227'), и я пытаюсь программно настроить его для использования JDB C для хранения сессии. Вся документация / примеры, которые я могу найти, касаются автономной пристани.

Знаете ли вы, как ее настроить?

1 Ответ

1 голос
/ 12 марта 2020

Я не так много знаю о JDB C или хранилище сессий, но, глядя на документацию Постоянные сеансы: JDB C для автономной пристани, он говорит вам включить модуль session-store-jdbc. Посмотрев на session-store-jdbc.mod, вы увидите, что он использует etc/sessions/jdbc/session-store.xml, и эти XML файлы могут быть напрямую переведены в java код.

Так похоже, что он добавляет JDBCSessionDataStoreFactory в качестве компонента на сервер. Таким образом, некоторый эквивалентный код, который вы можете попробовать, будет выглядеть примерно так:

// Configure a JDBCSessionDataStoreFactory.
JDBCSessionDataStoreFactory sessionDataStoreFactory = new JDBCSessionDataStoreFactory();
sessionDataStoreFactory.setGracePeriodSec(3600);
sessionDataStoreFactory.setSavePeriodSec(0);
sessionDataStoreFactory.setDatabaseAdaptor(...);

JDBCSessionDataStore.SessionTableSchema schema = new JDBCSessionDataStore.SessionTableSchema();
schema.setAccessTimeColumn("accessTime");
schema.setContextPathColumn("contextPath");
// ... more configuration here
sessionDataStoreFactory.setSessionTableSchema(schema);

// Add the SessionDataStoreFactory as a bean on the server.
server.addBean(sessionDataStoreFactory);
...