【发布时间】:2017-02-21 16:17:05
【问题描述】:
我正在将应用程序从 OC4J 迁移到 WebLogic 12c,但 Spring bean 出现错误,我不知道如何解决。我的问题是导致此错误的原因是什么。 我有以下用于 JNDI 查找的 bean:
<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName" value="${datasource.jndiname}" />
<property name="lookupOnStartup">
<value>false</value>
</property>
<property name="proxyInterface">
<value>javax.sql.DataSource</value>
</property>
</bean>
值${datasource.jndiname} 应该来自config.properties 文件,其中包含以下行:
server.database.datasource=${datasource.jndiname}
而server.database.datasource 的值来自config.filter 文件,其中包含以下行:
server.database.datasource=jdbc/DATASOURCE
这适用于 OC4J,当我在 WebLogic 中将 ${datasource.jndiname} 替换为其值 jdbc/DATASOURCE 时它也适用,但如果我保留引用(并且我需要保留它),它会给我以下错误:
JndiObjectTargetSource failed to obtain new target object; nested exception is javax.naming.NameNotFoundException: While trying to lookup '${datasource.jndiname}' didn't find subcontext '${datasource'. Resolved ''; remaining name '${datasource/jndiname}'
【问题讨论】: