【问题标题】:How can I replace Wildfly 9's default SessionManager with a custom implementation for all web apps?如何将 Wildfly 9 的默认 SessionManager 替换为所有 Web 应用程序的自定义实现?
【发布时间】:2015-12-07 11:21:52
【问题描述】:

根据我对 Undertow 文档和 this 堆栈溢出帖子的理解,我认为我应该能够提供自己的 SessionManager 实现。

我创建了一个 jar 文件,其中包含:

  • 一个 SessionManager 实现
  • SessionManagerFactory 实现
  • 一个 ServletExtension 实现
  • 一个 META-INF/services/io.undertow.servlet.ServletExtension 文件 包含我的班级的完全限定名称

我做对了吗?我如何让 Undertow 接手?

谢谢

【问题讨论】:

  • 我想做类似的事情。你有一个完整的例子可以分享你是如何做到这一点的吗?

标签: java jakarta-ee wildfly undertow


【解决方案1】:

如果你做了所有这些,你所需要的就是在你的 war/WEB-INF/lib 中拥有那个 jar 就是这样。

当战争部署时,WildFly 会寻找这个 ServletExtension 并告诉 undertow 加载它。

另见http://undertow.io/undertow-docs/undertow-docs-1.2.0/index.html#servlet-extensions

【讨论】:

  • 谢谢它的工作,但这并不是我想要的。而不是让战争知道会话管理器,我希望在某些野蛮配置级别上对其进行管理并应用于所有 Web 应用程序部署。这可能吗?
  • 理论上可以在wildfly中作为模块添加,然后在声明模块依赖时导入模块的meta-inf。您需要在每个 WAR 中使用 jboss-deployment-structure.xml 来表示您的应用程序中所需的依赖项。
  • 目前无法通过 undertow 子系统配置进行配置。但可能会在未来的版本中添加。
  • 知道了。我能够使用受 John Ament 启发的解决方案为每个部署替换会话管理器。我将我的 Jar 部署到 modules 目录,并让我的 Ear 部署通过其 Manifest 声明对我的 SessionManager 实现的依赖。换句话说,War 不包含依赖项,而是将责任委托给 Ear 部署。
猜你喜欢
  • 2015-09-15
  • 2013-02-25
  • 2019-04-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-11-15
  • 2022-11-12
相关资源
最近更新 更多