Този въпрос е за правилния начин за четене на конфигурация в 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: WELD-001408: Незадоволени зависимости за тип Незадължителен с квалификатори @ConfigProperty
в точка на инжектиране [BackedAnnotatedField] @Inject @ConfigProperty private com.my-company.core.internal.util.ZookeeperRegistry .portOffset
на com.my-company.core.internal.util.ZookeeperRegistry.portOffset(ZookeeperRegistry.java:0) WELD-001475: Следните компоненти съвпадат по тип, но никой няма съвпадащи квалификатори: - Метод на производителя [По избор ] с квалификатори [@Any @ConfigurationValue], декларирани като [[UnbackedAnnotatedMethod] @ConfigurationValue @Dependent @Produces org.wildfly.swarm.container.runtime.cdi.ConfigurationValueProducer.produceOptionalConfigValue(InjectionPoint)]
Много благодаря предварително.
org.eclipse.microprofile.config:microprofile-config-api
), но не и от Thorntail MP Config fraction (io.thorntail:microprofile-config
). Не е ли така? - person Ladicek   schedule 19.06.2019