【发布时间】:2016-01-18 03:29:10
【问题描述】:
我一直在寻找这个问题,我无法使用 java config 找到 jndi 数据库。在此之前,我使用 xml 及其工作完美,但在 java config 中它会导致问题;
Xml 代码:
<!-- Jndi database connection -->
<jee:jndi-lookup id="dbDataSource" jndi-name="${db.jndi}"
resource-ref="true" />
<beans:bean id="jdbcTemplate"
class="org.springframework.jdbc.core.JdbcTemplate" >
<beans:property name="dataSource" ref="dbDataSource"></beans:property>
</beans:bean>
Java 配置:
@Bean(name = "dbDataSource")
public DataSource dataSource(@Value("${db.jndi}") String jndiName)
{
JndiDataSourceLookup lookup = new JndiDataSourceLookup();
return lookup.getDataSource(jndiName);
}
@Bean
public JdbcTemplate jdbcTemplate(DataSource ds) {
return new JdbcTemplate(ds);
}
属性文件:
db.jndi=jndi/myData
weblogic 中的 JNDI 名称:
jndi/myData
改成java config后,有时系统可以读取数据库但很少发生,直到我清理并重新启动计算机才能找到数据库,但通常它总是触发:
javax.naming.NameNotFoundException: Unable to resolve 'jndi.myData'. Resolved 'jndi'; remaining name 'myData'
为什么应用程序无法正确找到数据库? 谢谢!!!
【问题讨论】:
标签: spring weblogic spring-java-config