【发布时间】:2015-07-25 05:16:16
【问题描述】:
我为一个特定的 dao 方法声明了以下 bean,以使用与项目其余部分不同的数据源。
@Bean(name="kingsDataSource")
public DataSource kingsDataSource(){
JndiDataSourceLookup jndi = new JndiDataSourceLookup();
jndi.setResourceRef(true);
return jndi.getDataSource("dataSource/kings");
这是那个 bean 的用途。
@Resource(name="kingsDataSource")
private DataSource ds;
这里来自 context.xml(省略了用户和密码,它们已被验证为正确的,如果它们错了就会抛出不同的错误。)我也尝试将它放在上下文中。服务器的xml,放在一个地方而不是另一个地方,并且在两个地方都有。
<Resource
name="dataSource/kings"
auth="Container"
type="com.mysql.jdbc.jdbc2.optional.MysqlDataSource"
factory="org.apache.naming.factory.BeanFactory"
URL="jdbc:mysql://kings/db_netlogs" />
错误是名称未找到异常 -
Caused by: javax.naming.NameNotFoundException: Name [dataSource/kings] is
not bound in this Context. Unable to find [dataSource].
那么,我的问题是 - 我将它绑定到什么以及如何绑定?
【问题讨论】:
-
你在
web.xml中有对应的resource-ref声明吗? -
我加了,没解决问题。
标签: java mysql spring datasource