【问题标题】:Microprofile Config injection is null during custom OASFilter processing and microprofile-config.propetries is not considered as config source在自定义 OASFilter 处理期间,Microprofile 配置注入为空,并且 microprofile-config.propetries 不被视为配置源
【发布时间】:2020-09-28 18:45:34
【问题描述】:

我正在准备自定义 OpenAPI 生成器,以使生成的文档具有通用性。我遇到的问题是尝试将 org.eclipse.microprofile.config.Config 注入扩展 org.eclipse.microprofile.openapi.OASFilter 的类时的一些奇怪行为时间>。 Wildfly CI/CD 容器无法解析 Config 对象,即使通过工厂方法成功解析它也是如此。

然而,解决 Config 引用仍然不能解决我此时能够读取 META-INF/microprofile-config.properties 内容的问题,即使稍后在执行 @Startup bean 期间,它得到正确解决。任何原因,为什么注入的行为不同?我使用的是官方 Wildfly 19 图像。

编辑:主要问题是查找属性时忽略了 microprofile-config.properties 的内容

【问题讨论】:

  • 当您打印出所有来源时,您会得到什么? config.getConfigSources().forEach(System.out::println);

标签: java jakarta-ee wildfly openapi microprofile


【解决方案1】:

微配置规范中没有关于在过滤器中处理注释的任何内容。

但正如您所发现的,使用ConfigProvider 可以正常工作。

我建议您在需要之前获取配置,即:

Config config = ConfigProvider.getConfig();
String keycloakUrl = config.getValue("OAUTH_URL", String.class);

[Microprofile OpenAPI 规范][1] https://download.eclipse.org/microprofile/microprofile-open-api-1.1/microprofile-openapi-spec.html#_oasfilter

【讨论】:

  • 我可能用有点古怪的方式表达了我的问题。主要问题是 META-INF/microprofile-config.properties 不被视为配置参数源,即使该文件已由 Microprofile OpenAPI 本身准备好,因为即使在参考文档中也提到了设置在上述文件中配置。
猜你喜欢
  • 2021-03-13
  • 2019-12-08
  • 2019-02-12
  • 1970-01-01
  • 2018-04-28
  • 1970-01-01
  • 2021-05-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多