你是在Tomcat的环境外使用的,InitialContext的形成应该有更多的参数吧,比如机器ip等等,具体实现没做过

解决方案 »

  1.   

    在类里运行?难道网页上你就不是在类里运行吗?你是不是用了其他的ide运行了?是jbuilder吗?如果是,那么jbuilder运行的时候会自己生成一个server.xml,你原来的server.xml的配置都失效了..所以你的连接池失败,如果你想用jbuider调试类,那么你就写一个不用连接池的方法留着在jb下调试用.
      

  2.   

    楼上的大侠,你说得很对!】
    在tomcat上可以的。如果我就用tomcat的连接池jar,那该怎么配置才能在非tomcat环境中使用呢?
      

  3.   

    在conf/Catalina/localhost/目录中添加一个与你发布网页文件的目录同名的xml文件,如:myweb.xml,然后把一下内容放到此文件中:(数据库以mssql为例,驱动程序:jdts)
    <Context crossContext="true" debug="5" docBase="myweb" path="/myweb" reloadable="true">
      <Logger className="org.apache.catalina.logger.FileLogger" prefix="localhost_DBTest_log." suffix=".txt" timestamp="true"/>
      <Resource auth="Container" name="jdbc/vivizone" type="javax.sql.DataSource"/>
      <ResourceParams name="jdbc/vivizone">
        <parameter>
          <name>factory</name>
          <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
        </parameter>
        <parameter>
          <name>maxActive</name>
          <value>100</value>
        </parameter>
        <parameter>
          <name>maxWait</name>
          <value>10000</value>
        </parameter>
        <parameter>
          <name>password</name>
          <value>mysite</value>
        </parameter>
        <parameter>
          <name>url</name>
          <value>jdbc:jtds:sqlserver://localhost:1433;DatabaseName=mysite</value>
        </parameter>
        <parameter>
    <!-此处为数据库驱动程序名,依实际而定>
          <name>driverClassName</name>
          <value>net.sourceforge.jtds.jdbc.Driver</value>
        </parameter>
        <parameter>
          <name>maxIdle</name>
          <value>30</value>
        </parameter>
        <parameter>
          <name>username</name>
          <value>mysite</value>
        </parameter>
      </ResourceParams>
    </Context>在WEB-INF中的web.xml里的<web-app></web-app>中加入:
      <resource-ref>
          <description>DB Connection</description>
          <res-ref-name>jdbc/vivizone</res-ref-name>
          <res-type>javax.sql.DataSource</res-type>
          <res-auth>Container</res-auth>
      </resource-ref>
      

  4.   

    是这样子的。要是用tomcat连接池必须启动tomcat,只有在tomcat容器里才能使用,而我是没有启动tomcat,直接运行了一个类,所以不行。