session - 如何设置嵌入式 Jetty 以使用 JDBC 会话
问题描述
我正在使用嵌入式码头(组:'org.eclipse.jetty',名称:'jetty-webapp',版本:'9.4.27.v20200227')并且我正在尝试以编程方式将其设置为使用 JDBC 进行会话存储。我能找到的所有文档/示例都是关于独立码头的。
你知道怎么设置吗?
解决方案
我不太了解 JDBC 或会话存储,但查看文档Persistent Sessions: JDBC for Standalone jetty,它告诉您启用模块session-store-jdbc
。通过查看session-store-jdbc.mod
可以看到它使用etc/sessions/jdbc/session-store.xml
并且可以将这些 XML 文件直接翻译成 java 代码。
因此,它看起来像是将 aJDBCSessionDataStoreFactory
作为 bean 添加到服务器上。因此,您可以尝试的一些等效代码如下所示:
// 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);
推荐阅读
- python - Python Plotly 极坐标图切片对齐
- php - 如何使用 php 根据用户对选择表单的响应执行 sqlite 语句?
- r - 将 sapply 与具有多个参数的函数一起使用
- laravel - 复选框和图标在搜索时消失
- ssms - 我的多维数据集的分区会发生什么?
- java - 探针被标记为非空但为空
- user-interface - 在树莓派 4 上运行 PySide6
- visual-studio-code - 为什么在 Visual Code 中编译 Solidity 的智能合约会产生此错误:“ParserError: Expected identifier, got 'LParen'”
- grouping - 如何添加我们选择的组列名称
- vuejs3 - ApexCharts 在调整窗口大小之前不正确