Этот вопрос касается правильного способа считывания конфигурации в 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: Следующие bean-компоненты совпадают по типу, но ни один не имеет соответствующих квалификаторов: - Метод источника [Необязательно] с отборочным [@Any @ConfigurationValue] объявлено как [[UnbackedAnnotatedMethod] @ConfigurationValue @Dependent @Produces org.wildfly.swarm.container.runtime.cdi.ConfigurationValueProducer.produceOptionalConfigValue (InjectionPoint)]
Большое спасибо заранее.