应该是数据源绑定不正确,试试
....
DataSource ds = null; 
   try{ 
     Context initCtx = new InitialContext(); 
    //从Context中lookup数据源。
     ds = (DataSource)initCtx.lookup("java:comp/env/jdbc/ser"); 
if(ds!=null) 
....
如果仍然不正确,是数据源绑定不正确

解决方案 »

  1.   

    javax.naming.NameNotFoundException: Name jdbc is not bound in this Context 这个错误
    我觉得是少了什么jar文件
      

  2.   

    <Context path="" debug="0" docBase="E:\SER" reloadable="true">
    <Resource name="jdbc/ser" auth="Container" type="javax.sql.DataSource"/>
    <ResourceParams name="jdbc/ser">
    <parameter>
    <name>factory</name>
    <value>
    org.apache.commons.dbcp.BasicDataSourceFactory
    </value>
    </parameter>
    <parameter>
    <name>
    driverClassName
    </name>
    <value>
    com.microsoft.jdbc.sqlserver.SQLServerDriver
    </value>
    </parameter>
    <parameter>
    <name>url</name>
    <value>
    jdbc:microsoft:sqlserver://222.18.144.171:1433;DatabaseName=CTM
    </value>
    </parameter>
    <parameter>
    <name>
    username
    </name>
    <value>
    sa
    </value>
    </parameter>
    <parameter>
    <name>password</name>
    <value>sa</value>
    </parameter>
    <parameter>
    <name>maxActive</name>
    <value>20</value>
    </parameter>
    <parameter>
    <name>maxIdle</name>
    <value>10</value>
    </parameter>
    <parameter>
    <name>maxWait</name>
    <value>-1</value>
    </parameter>
    </ResourceParams>
    </Context>这一段有问题么?
      

  3.   

    你的web.xml有没有这么一段:
     <resource-ref>
      <description>Employees Database for HR Applications</description>
      <res-ref-name>jdbc/EmployeeDB</res-ref-name>
      <res-ref-type>javax.sql.DataSource</res-ref-type>
      <res-auth>Container</res-auth>
    </resource-ref>
      

  4.   

    我加了的啊~加在web.xml里面撒