Клиент Spring Cloud не может прочитать свойства в XML-файле (внедрение свойств на основе XML) с сервера конфигурации Spring Cloud. - PullRequest
0 голосов
/ 12 февраля 2019

У меня есть свойства чтения сервера конфигурации из файла 'pdm-adipdm-inbound.properties', определенного в моем config-repo.

Теперь у меня есть клиент, который ссылается на этот сервер конфигурации для получения свойствчерез файл bootstrap.yml.

Где-то в моем коде я инициализирую контекст Spring, используя строку ниже

AbstractXmlApplicationContext springContext = new FileSystemXmlApplicationContext("KalidoRefDataTest.xml");

Содержимое файла KalidoRefDataTest.xml:


<context:component-scan base-package="pdm.inbound"/>    

<bean id="tibcoConnectionFactoryKalidoRefData" class="com.tibco.tibjms.TibjmsConnectionFactory">
        <property name="serverUrl" value="${jms.tibco.inbound.kalido.brokerUrl}" />
        <property name="userName" value="${jms.tibco.inbound.kalido.ConnectionUsername}" />
        <property name="userPassword" value="${jms.tibco.inbound.kalido.ConnectionPassword}" />
    </bean>

Из исключения кажется, что свойство ' $ {jms.tibco.inbound.kalido.ConnectionUsername} ' не читается должным образом, но я могу прочитать то же свойство, введя аннотацию с помощью @Value($ {jms.tibco.inbound.kalido.ConnectionUsername}) в любом классе java, но в xml-файле происходит сбой.

Я не видел ни одного примера, когда свойство вводится в XML-файл с сервера конфигурации.Это вообще возможно?Может ли кто-нибудь помочь мне узнать это?Пожалуйста, дайте мне знать, если нужна дополнительная информация.Заранее спасибо.

Ниже приведены другие сведения, которые могут потребоваться для точного представления проблемы:

Трассировка стека исключений:

 main] o.s.c.s.FileSystemXmlApplicationContext  : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanDefinitionStoreException: Invalid bean definition with name 'tibcoConnectionFactoryKalidoRefData' defined in URL [file:E:/Workspace/inboundnew/src/main/distribution/zip/config/KalidoRefDataTest.xml]: **Could not resolve placeholder 'jms.tibco.inbound.kalido.brokerUrl' in value "${jms.tibco.inbound.kalido.brokerUrl}"**; nested exception is java.lang.IllegalArgumentException: Could not resolve placeholder 'jms.tibco.inbound.kalido.brokerUrl' in value "${jms.tibco.inbound.kalido.brokerUrl}"
2019-02-12 06:04:59.528 ERROR 8856 --- [           main] i.c.b.BusinessLogicMultiThreadingInvoker : Exception during Spring initialization: Invalid bean definition with name 'tibcoConnectionFactoryKalidoRefData' defined in URL [file:E:/Workspace/inboundnew/src/main/distribution/zip/config/KalidoRefDataTest.xml]: Could not resolve placeholder 'jms.tibco.inbound.kalido.brokerUrl' in value "${jms.tibco.inbound.kalido.brokerUrl}"; nested exception is java.lang.IllegalArgumentException: Could not resolve placeholder 'jms.tibco.inbound.kalido.brokerUrl' in value "${jms.tibco.inbound.kalido.brokerUrl}"

bootstrap.yml:

spring:
  application:
    name: pdm-adipdm-inbound
  cloud:
    config:
      failFast: true  # if it can't connect to configuration servers the application fails
      env: default
      label: ${EXEC_ENVIRONMENT:master} # what configuration to use for the environment (registry, gateway, etc)
      #points to configuration server
      uri: ${CONFIG_SERVER_URI:http://localhost:8888}

...