Этот вопрос касается правильного способа чтения конфигурации в службе 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.ZookeeperRe .portOffset
в com.my-company.core.internal.util.ZookeeperRegistry.portOffset (ZookeeperRegistry.java:0) WELD-001475: следующие bean-компоненты соответствуют типу, но ни у одного из них нет соответствующих квалификаторов: - Метод производителя [Необязательно ] с квалификаторами [@Any @ConfigurationValue], объявленными как [[UnbackedAnnotatedMethod] @ConfigurationValue @Dependent @Produces org.wildfly.swarm.container.runtime.cdi.ConfigurationValueProducer.produceOptionalConfigPointValue] (InjectionalConfigPointValue)
Спасибо заранее.
org.eclipse.microprofile.config:microprofile-config-api
), но не от фракции Thorntail MP Config (io.thorntail:microprofile-config
). Разве это не так? - person Ladicek   schedule 19.06.2019