继续上周的问题:配置 JBoss 使用 JNDI 时出现问题 https://stackoverflow.com/questions/2828237/problem-configure-jboss-to-work-with-jndi
我正在尝试在 JBoss 中绑定数据源并在我的应用程序中使用它。在我的挣扎中,我已经设法通过以下方式避免 javax.naming.NameNotFoundException:
1.在java中使用new InitialContext().lookup(connection);
代替new JndiObjectFactoryBean().setJndiName(connection);
2. 将连接名称从“jndi-name”更改为“java:jndi-name”
现在的问题是我从查找中获得的数据源是null。
我创建了数据源文件:
<datasources>
<local-tx-datasource>
<jndi-name>bilby</jndi-name>
<connection-url>jdbc:oracle:myURL</connection-url>
<driver-class>oracle.jdbc.OracleDriver </driver-class>
<user-name>myUsername</user-name>
<password>myPassword</password>
<exception-sorter-class- name>org.jboss.resource.adapter.jdbc.vendor.OracleExceptionSorter</exception-sorter-class-name>
<metadata>
<type-mapping>Oracle9i</type-mapping>
</metadata>
</local-tx-datasource>
</datasources>
并将其放在 \server\default\deploy\oracle-ds.xml 下
我在运行时得到以下行:
18:37:56,560 信息
[连接工厂绑定服务]
绑定连接管理器'jb
oss.jca:service=DataSourceBinding,name=bilby'
JNDI 名称“java:bilby”
所以我的问题是 - 为什么我的数据源为空???
首先,我只是想确定一下,当你说
更改连接名称:
'jndi-名称' 到 'java:jndi-名称'
你真正的意思是java:bilby
, right?
我不确定为什么会发生这种情况,但我可以建议一个解决方法。
将以下行添加到您的oracle-ds.xml
, 之后<jndi-name>
元素:
<use-java-context>false</use-java-context>
部署后,应删除java:
来自 JNDI 绑定的前缀。然后您应该能够使用:
new InitialContext().lookup("bilby")
并得到你的DataSource
back.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)