首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Spring中从外部属性文件读取JNDI名称

问在Spring中从外部属性文件读取JNDI名称
EN

Stack Overflow用户
提问于 2018-09-07 16:07:24
回答 2查看 652关注 0票数 0

我正在开发一个Spring web应用程序,其中我使用JMS以及一些数据源连接。

现在,我不是对DataSource/Jms连接工厂的JNDI名称进行硬编码,而是希望从外部属性文件中读取它们。

我使用了以下配置:

代码语言:javascript
复制
<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:中抛出错误

代码语言:javascript
复制
javax.naming.NameNotFoundException: Unable to resolve '${DS_JNDI}'. Resolved ''; remaining name '${DS_JNDI}'

是不是就像使用<jee:jndi-lookup>时不能放入属性文件条目一样?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-09-09 12:29:36

代码语言:javascript
复制
<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
EN

Stack Overflow用户

发布于 2018-09-08 21:53:39

您应该删除类路径后的星号,并添加文件扩展名的属性

代码语言:javascript
复制
<bean id="myProps" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
    <property name="locations" value="classpath:myFile.properties"/>
    <property name="ignoreUnresolvablePlaceholders" value="true"/>
</bean>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52218119

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档