你连接池的名字到底是什么?? jdbc/stu 吗?? 可能有特殊字符,所以不规范吧,你改成stu试试看,然后代码中写DataSource ds = (DataSource) ctx.lookup("stu");

解决方案 »

  1.   

    不会是你说的问题。我的jndi名字没问题。我试过直接在程序里用JDBC连接数据库。把驱动和URL等字符串放到.properties文件里。可是还是连接不上。有哪位高手遇过这样的问题。我现在怀疑可能是我的数据库驱动程序有问题
      

  2.   

    好像要在前面增加一个java:/
    ctx.lookup("java:/jdbc/stu");应该就可以了。
      

  3.   

    Context initCtx = new InitialContext();
     Context envCtx = (Context) initCtx.lookup("java:comp/env");
     DataSource ds = (DataSource)initCtx.lookup("jdbc/stu");
     conn = ds.getConnection();
    =======================================================
    DataSource ds = (DataSource) ctx.lookup("jdbc/stu");
    拜托这2段没区别的! yhww你新手吧?
      

  4.   

    JNDIHelper.RMS_DATA_SOURCE 是你在服务器中 jndi 数据源的名字   public static Connection getConnection() throws NamingException,
             SQLException
        {
            if (dataSource == null)
            {
                InitialContext initialcontext = new InitialContext();
                Object obj = initialcontext.lookup(JNDIHelper.RMS_DATA_SOURCE);
                dataSource = (DataSource) PortableRemoteObject.narrow(obj,
                     getClass("javax.sql.DataSource"));
            }        return dataSource.getConnection();
        }
      

  5.   

    我也遇到这样的问题,我的代码是:
    ...
            OracleDataSource ods = null;//数据库oracle
            Environment env = new Environment();
            env.setProviderUrl("t3://localhost:7001");
            env.setSecurityPrincipal("weblogic");
            env.setSecurityCredentials("weblogic");
            env.setInitialContextFactory("weblogic.jndi.WLInitialContextFactory");
            Context initialContext = env.getInitialContext();        if (ods == null) {            ods = (OracleDataSource) initialContext
                        .lookup("gisJNDI");//JNDI名称为gisJNDI        }
            //     通过数据源获取连接
            conn = ods.getConnection();
    ...异常:
    java.lang.ClassCastException
    at test.TspService.connectToDbWithDataSource(TspService.java:171)
    at test.TspService.<init>(TspService.java:71)
    at test.TspService.main(TspService.java:233)
    Exception in thread "main" ------
    困扰了好几天了,:(
      

  6.   

    你用这种方法试一试:Properties properties = new Properties();
        properties.put(Context.INITIAL_CONTEXT_FACTORY,
                       "weblogic.jndi.WLInitialContextFactory");
        properties.put(Context.PROVIDER_URL, "t3://localhost:7001");
        try {
          Context ctx = new InitialContext(properties);
          DataSource ds = (DataSource) ctx.lookup("econe3"); // econe3是JNDI名
          Connection conn = ds.getConnection();
            }catch (Exception ne) {
              ne.printStackTrace();
            }
      

  7.   

    改成这个也没用。:(
    还是这个问题
    不过,可以访问数据库了,取得到数据!
    但是还会有
    java.lang.ClassCastException
    at test.TspService.connectToDbWithDataSource(TspService.java:180)
    at test.TspService.<init>(TspService.java:77)
    at test.TspService.main(TspService.java:247)
    的异常出现,不知道什么原因?哪位大侠知道啊?
      

  8.   

    如果已经可以访问数据库的话,就证明连接没有问题了,而且你出现的异常也不同了。可能是你其他地方的代码有问题,可以在每一行的后面添加System.out.println(".........");语句,到后台察看到底哪一行有错误。
      

  9.   

    java.lang.ClassCastException
    at test.TspService.connectToDbWithDataSource(TspService.java:180) at test.TspService.<init>(TspService.java:77)
    at test.TspService.main(TspService.java:247
      

  10.   

    java.lang.ClassCastException
    at test.TspService.connectToDbWithDataSource(TspService.java:180)
              在这个TspService类180行附近查
      

  11.   

    180行的代码就是这样的:
    ods = (OracleDataSource) initialContext.lookup("gisJNDI");//180行
                    //     通过数据源获取连接
                    //if (conn == null) {                conn = ods.getConnection();            } catch (Exception e) {
                    e.printStackTrace();
                    //conn.close();
                }