首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将JBoss配置为使用JNDI的问题(2)

将JBoss配置为使用JNDI的问题(2)
EN

Stack Overflow用户
提问于 2010-05-16 09:40:34
回答 2查看 4.4K关注 0票数 3

继续上个星期的问题:problem configure JBoss to work with JNDI

我试图在JBoss中绑定数据源,并在我的应用程序中使用它。在我的挣扎中,我已经设法通过以下方式避免了javax.naming.NameNotFoundException:

  1. 在java new InitialContext().lookup(connection);中的使用

而不是将连接名从:'jndi- name‘更改为'java:jndi-name',而不是new JndiObjectFactoryBean().setJndiName(connection);

现在的问题是,我从查找得到的数据是。我创建了数据源文件:

代码语言:javascript
复制
 <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\部署\oracle-ds.xml下面。

我在运行时得到了行:

18:37:56,560 INFO ConnectionFactoryBindingService ConnectionFactoryBindingService ConnectionManager 'jb oss.jca:service=DataSourceBinding,name=bilby‘到JNDI名称'java:bilby’

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

EN

回答 2

Stack Overflow用户

发布于 2010-05-16 09:53:32

首先,我只想确定你说

将连接名从:'jndi- name‘更改为'java:jndi-name’。

你是说java:bilby对吧?

我不清楚为什么会发生这种情况,但我可以提出一个解决办法。

oracle-ds.xml元素之后,向<jndi-name>添加以下行:

代码语言:javascript
复制
<use-java-context>false</use-java-context>

在部署它时,它应该从JNDI绑定中删除java:前缀。然后,您应该能够使用:

代码语言:javascript
复制
new InitialContext().lookup("bilby")

把你的DataSource拿回来。

票数 1
EN

Stack Overflow用户

发布于 2010-05-16 10:28:59

首先,我建议查看JBOSS_DIST/docs/examples/jca中可用的所有配置选项(包括池大小参数)。

其次,我对hsqldb-ds.xml中配置的默认数据源进行了快速测试,定义如下:

代码语言:javascript
复制
<datasources>
   <local-tx-datasource>

      <!-- The jndi name of the DataSource, it is prefixed with java:/ -->
      <!-- Datasources are not available outside the virtual machine -->
      <jndi-name>DefaultDS</jndi-name>

      ...

</datasource>

下面的查找只起作用:

代码语言:javascript
复制
DataSource ds = null;
Connection conn = null;
try {
    ds = (DataSource) new InitialContext().lookup("java:/DefaultDS");
    conn = ds.getConnection();
    // ...
    conn.close();
} catch (Exception e) {
    // handle me
}

如果这并不适用于您,请澄清您要传递给lookup方法的确切内容。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2843218

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档