Context initCtx=new javax.naming.InitialContext();
      Context envCtx=(Context)initCtx.lookup("java:comp/env");
      DataSource ds=(DataSource)envCtx.lookup("java:comp/env");
此处的("java:comp/env");和("java:comp/env");
是什么意思呢

解决方案 »

  1.   

    查找jndi服务上的资源("java:comp/env");和("java:comp/env");是资源的名称,相当于map的key
      

  2.   

    不好意思打错了
    Context initCtx=new javax.naming.InitialContext();      
    Context envCtx=(Context)initCtx.lookup("java:comp/env");
    DataSource ds=(DataSource)envCtx.lookup("jdbc/mingri");
    return ds.getConnection();
    这个是用来连接SQL的,但我不懂lookup后面的参数是什么
      

  3.   

    Context里面用key-value方式绑定资源,就可以lookup查key方式找到,JNDI资源定位的范畴可以定位本机或者远程资源,只要你提供URI,“jdbc/mingri”这就是一个URI
      

  4.   

    datasource就是用“jdbc/mingri”这个名字绑定到jndi服务器的资源
      

  5.   


    Context initCtx=new javax.naming.InitialContext();  
    DataSource ds=(DataSource)initCtx.lookup("java:comp/env/jdbc/mingri");
    return ds.getConnection();上面代码的效果是一样的。以“java:comp/env/”开头的jndi名称属于ENC(Environment Naming Context),即在模块内部使用的名称。