gpt4 book ai didi

java - 配置 JBoss 以使用 JNDI 的问题 (2)

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:19:25 25 4
gpt4 key购买 nike

继续上周的问题: problem configure JBoss to work with JNDI

我正在尝试在 JBoss 中绑定(bind)数据源并在我的应用程序中使用它。在我的挣扎中,我已经设法通过以下方式避免了 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 INFO [ConnectionFactoryBindingService] Bound ConnectionManager 'jb oss.jca:service=DataSourceBinding,name=bilby' to JNDI name 'java:bilby'

所以我的问题是 - 为什么我的数据源为 null???

最佳答案

首先,我只是想确定当你说

changing the connection name from: 'jndi-name' to 'java:jndi-name'

你的意思是java:bilby ,对吧?

我不确定为什么会发生这种情况,但我可以建议一个解决方法。

将以下行添加到您的 oracle-ds.xml , 在 <jndi-name> 之后元素:

<use-java-context>false</use-java-context>

部署后,它应该删除 java:来自 JNDI 绑定(bind)的前缀。然后您应该能够使用:

new InitialContext().lookup("bilby")

并获取您的 DataSource回来。

关于java - 配置 JBoss 以使用 JNDI 的问题 (2),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2843218/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com