【问题标题】:How to connect data base using jndi datasource in weblogic如何在weblogic中使用jndi数据源连接数据库
【发布时间】:2011-09-21 03:05:15
【问题描述】:

如何在 weblogic 中使用 jndi 数据源连接数据库。我正在使用以下代码,但它为连接提供空值

Context ctx = null;
    Hashtable evn = new Hashtable();
                evn.put(Context.INITIAL_CONTEXT_FACTORY,"weblogic.jndi.WLInitialContextFactory");
    evn.put(Context.PROVIDER_URL,"t3://localhost:7001");    

    Connection conn = null;
    try {
     ctx = new InitialContext(evn);
     javax.sql.DataSource ds 
                      = (javax.sql.DataSource) ctx.lookup ("mydatasource");
          conn = ds.getConnection();
                  }catch (Exception e) {
                      System.out.println();
                    // TODO: handle exception
                                }

【问题讨论】:

  • 当您从查找中获取对象 (DataSource) 时,查找 (JNDI) 正常工作。所以我猜是连接本身的配置问题。
  • 你在weblogic控制台配置了mydatasource了吗?
  • 如果数据源绑定到jndi树,通过weblogic控制台检查weblogic服务器的jndi树
  • 是的,我已经在 weblogic 控制台中配置了 mydatasource

标签: java database oracle10g weblogic jndi


【解决方案1】:

附加此内容以澄清有关异常原因的更多信息

catch(Exception sqlExp)
{        
   throw new SQLException("getConnection :: Exception"+sqlExp);
}

【讨论】:

    【解决方案2】:
    1. 按照 Stano 的建议发布异常
    2. 在 weblogic 控制台上测试连接 http://docs.oracle.com/cd/E23943_01/web.1111/e13737/jdbc_datasources.htm#CHDIIFHH

    3. 您是否将数据源定位到应用程序所在的 weblogic 服务器?

    【讨论】:

      【解决方案3】:
           //try this code:
      
           Connection con = null;
           DataSource datasource = null;
      
           Context initialContext = new InitialContext();
      
           // "jdbc/MyDBname" >> is a JNDI Name of DataSource on weblogic
      
           datasource = (DataSource) initialContext.lookup("jdbc/MyDBname");
      
           con = datasource.getConnection();
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-03-06
        • 1970-01-01
        • 2011-07-15
        • 1970-01-01
        • 2016-04-18
        • 2023-04-04
        相关资源
        最近更新 更多