我正在尝试在 JBoss 上运行的应用程序中使用 JNDI 将连接绑定到数据库。我做了以下事情:
- 我创建了数据源文件oracle-ds.xml用相关的 xml 元素填充它:
<datasources>
<local-tx-datasource>
<jndi-name>bilby</jndi-name>
...
</local-tx-datasource>
</datasources>
并将其放在文件夹 \server\default\deploy 中
添加了相关的oracle jar文件
比我在我的应用程序中执行的:
JndiObjectFactoryBean 工厂 = 新
JndiObjectFactoryBean();
factory.setJndiName("bilby");
try{
factory.afterPropertiesSet();
dataSource = factory.getObject();
}
catch(NamingException ne) {
ne.printStackTrace();
}
这会导致错误:
javax.naming.NameNotFoundException:
兔耳袋狸没有被束缚
然后在输出中发生此错误后我看到了这一行:
18:37:56,560 信息
[连接工厂绑定服务]
绑定连接管理器'jb
oss.jca:service=DataSourceBinding,name=bilby'
JNDI 名称“java:bilby”
那么我的配置有什么问题呢?我认为 JBoss 可能首先加载并运行我的应用程序的 .war 文件,然后才加载包含我的数据源定义的 oracle-ds.xml。
问题是它们都位于同一文件夹中。
有没有办法定义加载它们的优先级,或者也许这根本不是问题。
任何想法?
您应该使用这样的构造来调用数据源:java:bilby。
您可以在这里阅读更多相关内容:
命名和目录 (JNDI) - JBOSS jndi 数据源:jdbc 未绑定
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)