tomcat的jdni并没有expose出来,你只能在jsp或者serverlt中用缺省的 new InitialContext();

解决方案 »

  1.   

    为什么我在weblogic里配的数据库连接也没有用楼主那种方式,
    ctx = new InitialContext();
        ds=(DataSource)ctx.lookup("DataSrc");
    直接搞定了,InitialContext()什么时候需要带参数的构造啊?
      

  2.   

    weblogic是可以remote请求的。而且你请求的DataSource也是本地请求,远地你这么请求试试。
      

  3.   

    通过JNDI连接数据库有两种方式,一种是容器内访问,一种是通过特定协议从容器外访问,比如传统的RMI,BEA的T3等。楼主所问的方式是容器外访问。假如是Weblogic,
    String url = "t3://localhost:7001";
    String factory = "weblogic.jndi.WLInitialContextFactory";
    记得要import weblogic.jar哦
      

  4.   

    如果是Tomcat,我不知道有容器外的访问方式。一个推荐的配置DataSource的方式是declaration。就是在/conf/server.xml和WEB-INF/web.xml中配置连接参数,然后从Context访问,代码片断如下:
     Context ctx = new InitialContext();
     DataSource ds = (DataSource)ctx.lookup("java:comp/env/jdbc/mysqlDS");另外一个常用的方式是写一个servlet,在部署时就自动生成DataSource