首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Thorntail中MicroProfile Config实现的可移植性问题

Thorntail中MicroProfile Config实现的可移植性问题
EN

Stack Overflow用户
提问于 2019-06-18 16:46:44
回答 1查看 783关注 0票数 0

这个问题是关于以可移植的方式读取REST服务中的配置的正确方法,例如应该在Thorntail 2.4.0Wildfly 15上运行。

这是Thorntail建议的最初的实现。

代码语言:javascript
复制
@Inject
    @org.wildfly.swarm.spi.runtime.annotations.ConfigurationValue("swarm.port.offset")
private Optional<String> portOffset;

这在WildFly 15中不起作用,所以我们用以下方式修改了这段代码:

代码语言:javascript
复制
@Inject
@ConfigProperty(name="swarm.port.offset")
private Optional<String> portOffset;

并且,只要设置了系统属性,它就能很好地工作。

但是,在Thorntail中,它会生成以下异常:

org.jboss.weld.exceptions.DeploymentException:焊缝-001408:类型可选的不满意的依赖项@ConfigProperty 在注入点处,BackedAnnotatedField @Inject @ConfigProperty私有BackedAnnotatedField 在com.my-company.core.internal.util.ZookeeperRegistry.portOffset(ZookeeperRegistry.java:0)焊缝-001475:以下bean按类型匹配,但没有一个具有匹配限定符:- Producer方法可选,限定符@Any @ConfigurationValue声明为[UnbackedAnnotatedMethod @ConfigurationValue @依赖“生成org.wildfly.swarm.container.runtime.cdi.ConfigurationValueProducer.produceOptionalConfigValue(InjectionPoint)]

在此之前,非常感谢您。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-06-19 08:38:21

代码最终在这两个环境中运行,只有一个pom文件。

我在下面详述所采取的解决办法。

  1. 使用@ConfigProperty,而不是@org.wildfly.swarm.spi.runtime.annotations.ConfigurationValue
  2. 使用@Any @ConfigProperty,已解析焊接-001475
  3. 在maven依赖项方面,我包括了这个依赖项,不管我们是为Thorntail构建还是为WildFLy构建 org.eclipse.microprofile.config微配置-配置-api

实际版本使用Eclipse的dependencyManagement解析:

代码语言:javascript
复制
<dependencyManagement>
    <dependencies>
        <dependency>
           <groupId>org.eclipse.microprofile</groupId>
           <artifactId>microprofile</artifactId>
           <version>2.2</version>
           <type>pom</type>
           <scope>import</scope>
       </dependency>   
...
</dependencyManagement>
  1. Maven配置文件用于导入不属于“核心”的Thorntail实现,例如微配置文件健康,但在microprofile-config的情况下,这是不必要的。对于org.wildfly.extension.microprofile.config.smallrye,提供了实现WildFly,因此war/ear中不包含库。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56653696

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档