使用 ServiceLoaders 的 Wildfly Web 应用程序中的模块化 jars/plugins

Modular jars/plugins within a Wildfly Web Application using ServiceLoaders

我们广泛使用 Java ServiceLoaders 作为我们应用程序组件的插件基础设施。我们定义接口,然后使用加载器在 运行 时间加载它们。添加带有扩展和服务文件的额外 jar 非常适合我们的用例。

但是,我很难理解我们如何能够在 Wildfly 中部署应用程序时继续使用这种方法。意图如上所述,能够将“扩展”jar 添加到 Web 应用程序 class 路径而无需

  1. 停止服务器
  2. 解压缩 war
  3. 添加额外的 jar
  4. 邮编war
  5. 启动服务器

在 Tomcat 中,我们可以部署 Web 应用程序文件夹而不是 war。所以停止服务器,放入一个罐子,然后启动服务器工作正常。在 Wildfly(最新)中,它似乎不喜欢文件夹的部署与 war.

我已经阅读了有关模块方法的信息,但未能成功使用此方法让已部署的应用程序从服务加载器实现中查看模块。

想知道是否有替代解决方案或者我们做错了什么?

谢谢

WildFly 支持使用部署扫描器或使用带 jboss-cli 的 explode 命令展开部署。使用 jboss-cli,您甚至可以远程更新文件。