【发布时间】:2011-02-19 04:06:57
【问题描述】:
我正在尝试在 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: bilby 未绑定
然后在输出中发生此错误后我看到了这一行:
18:37:56,560 信息 [连接工厂绑定服务] 绑定 ConnectionManager 'jb oss.jca:service=DataSourceBinding,name=bilby' 到 JNDI 名称 'java:bilby'
那么我的配置问题是什么?我认为可能是 JBoss 首先加载并运行我的应用程序的 .war 文件,然后才加载包含我的数据源定义的 oracle-ds.xml。 问题是它们都位于同一个文件夹中。 有没有办法定义加载它们的优先级,或者这根本不是问题。
有什么想法吗?
【问题讨论】: