这个问题是关于以可移植的方式读取REST服务中的配置的正确方法,例如应该在Thorntail 2.4.0和Wildfly 15上运行。
这是Thorntail建议的最初的实现。
@Inject
@org.wildfly.swarm.spi.runtime.annotations.ConfigurationValue("swarm.port.offset")
private Optional<String> portOffset;这在WildFly 15中不起作用,所以我们用以下方式修改了这段代码:
@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)]
在此之前,非常感谢您。
发布于 2019-06-19 08:38:21
代码最终在这两个环境中运行,只有一个pom文件。
我在下面详述所采取的解决办法。
实际版本使用Eclipse的dependencyManagement解析:
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.eclipse.microprofile</groupId>
<artifactId>microprofile</artifactId>
<version>2.2</version>
<type>pom</type>
<scope>import</scope>
</dependency>
...
</dependencyManagement>https://stackoverflow.com/questions/56653696
复制相似问题