Чтение имени JNDI из файла внешних свойств в Spring - PullRequest
0 голосов
/ 07 сентября 2018

Я занимаюсь разработкой веб-приложения Spring, в котором я использую JMS, а также соединение с источником данных.

Теперь вместо того, чтобы жестко кодировать имена JNDI фабрики соединений DataSource / Jms, я хочу прочитать их из файла внешних свойств.

Я использовал следующую конфигурацию:

<bean id="myProps" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
    <property name="locations" value="classpath*:myFile"/>
    <property name="ignoreUnresolvablePlaceholders" value="true"/>
</bean>
 `<jee:jndi-lookup` id="dataSource" jndi-name="${DS_JNDI}" expected-type="javax.sql.DataSource"/>

Но во время развертывания выдает ошибку в weblogic :::

javax.naming.NameNotFoundException: Unable to resolve '${DS_JNDI}'. Resolved ''; remaining name '${DS_JNDI}'

Это похоже на то, что я не могу поместить запись файла свойств при использовании <jee:jndi-lookup> ???

Ответы [ 2 ]

0 голосов
/ 09 сентября 2018
<bean id="myProperties"  class="org.springframework.beans.factory.config.PropertiesFactoryBean"> 
   <property name="locations"> 
      <list> 
         <value>classpath*:myFile.properties</value> 
      </list> 
   </property> 
</bean>

Это правильное решение проблемы. Я думаю, начиная с Spring5.x, он прекратил добавлять расширение ".properties".

0 голосов
/ 08 сентября 2018

Вы должны удалить звездочку после classpath и добавить свойства расширения файла

<bean id="myProps" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
    <property name="locations" value="classpath:myFile.properties"/>
    <property name="ignoreUnresolvablePlaceholders" value="true"/>
</bean>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...