首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何通过Java代码在JBoss中提取用户名、密码和数据库或连接url?

如何通过Java代码在JBoss中提取用户名、密码和数据库或连接url?
EN

Stack Overflow用户
提问于 2012-02-08 00:30:42
回答 2查看 3K关注 0票数 0

有人知道如何通过Java代码在JBoss/JNDI中提取用户名、密码和数据库,或者连接url吗?

我需要它直接与数据库连接,而不是使用连接池,而是利用JNDI配置。

这是我的JNDI配置:

代码语言:javascript
复制
<datasources>
  <local-tx-datasource>
    <jndi-name>WonderDesenv</jndi-name>
    <connection-url>jdbc:oracle:thin:@192.168.0.74:1521:DESENV</connection-url>
    <driver-class>oracle.jdbc.driver.OracleDriver</driver-class>

    <user-name>wonder</user-name>
    <password>wonder</password>

    <min-pool-size>1</min-pool-size>
    <max-pool-size>50</max-pool-size>

    <idle-timeout-minutes>10</idle-timeout-minutes>
    <prepared-statement-cache-size>30</prepared-statement-cache-size>

    <blocking-timeout-millis>30000</blocking-timeout-millis>

    <new-connection-sql>
    </new-connection-sql>

    <check-valid-connection-sql>select 1 from dual</check-valid-connection-sql>
    <track-statements>true</track-statements>
        <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>
EN

回答 2

Stack Overflow用户

发布于 2012-02-08 02:18:32

您还没有指定您正在使用的内容,如EJB或其他...不管怎样,

您需要在您的web.xml中添加以下内容

代码语言:javascript
复制
 <resource-ref>
 <description>Oracle Datasource example</description>
 <res-ref-name>jdbc/WonderDesenv</res-ref-name>
 <res-type>javax.sql.DataSource</res-type>
 <res-auth>Container</res-auth>
 </resource-ref>

和简单的上下文查找,如下所示

代码语言:javascript
复制
    Context initContext = new InitialContext();
    Context envContext  = (Context)initContext.lookup("java:/comp/env");
    DataSource ds = (DataSource)envContext.lookup("jdbc/WonderDesenv");
    Connection conn = ds.getConnection();
    ....
票数 2
EN

Stack Overflow用户

发布于 2012-02-08 00:37:53

您必须通过JNDI获取DataSource对象,然后将其向下转换为JBoss提供的特定类。确切的类取决于您正在创建的数据源的类型。(XA vs local) DataSource本身没有对连接信息的引用。如果你张贴你的-ds.xml文件,它可能会有帮助。

更新:经过搜索,我想我找到了你的解决方案。如果您只需参考JNDI数据源,就会清楚得多。这将是一个比自己创建连接更好的解决方案,因为这将利用使用jboss连接池的安全性。

https://syntatic.wordpress.com/2008/08/20/connection-pooling-for-rails-on-jruby-using-jndi-and-jdbc/

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

https://stackoverflow.com/questions/9179982

复制
相关文章

相似问题

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