1:先改一改你的代码:
try {
      Context initContext = new InitialContext();
      Context envContext  = (Context)initContext.lookup    ("java:/comp/env");
      DataSource ds = (DataSource)envContext.lookup("jdbc/engtrade");      conn = ds.getConnection();
      System.out.println("connection database success!");
    }catch(Exception e) {
      e.printStackTrace();
    }
这段代码只是多加了两句。其中("java:/comp/env");是必须加上的。
在tomcat中,jndi的资源默认是在comp/env这个名字空间下的。
2:你的tomcat的server.xml文件也不正确。应这样改动。
  找到</Context></Host>之间的地方(千万不要改动<Connector>之间的部分)加上:
 <Context className="org.apache.catalina.core.StandardContext" crossContext="true" reloadable="true" mapperClass="org.apache.catalina.core.StandardContextMapper" useNaming="true" debug="0" privileged="false" wrapperClass="org.apache.catalina.core.StandardWrapper" docBase="/E:/Test.war(你的.jar文件路径,Test是我的程序,你可以自行改动)" cookies="true" path="/(你的application的Context路径)" cachingAllowed="true" charsetMapperClass="org.apache.catalina.util.CharsetMapper">
          <Logger (指定日志文件)className="org.apache.catalina.logger.FileLogger" debug="5" verbosity="0" prefix="localhost_Test_log." directory="\work\Standalone\localhost\test(你的application工作路径,只须将test改为你的application名)" timestamp="true" suffix=".txt"/>
          <Resource name="jdbc/engtrade" scope="Shareable" type="javax.sql.DataSource"/>
          <ResourceParams name="jdbc/engtrade">
            <parameter>
              <name>url</name>
              <value>jdbc:microsoft:sqlserver://weiwei:1433;DatabaseName=Test</value>
            </parameter>
            <parameter>
              <name>validationQuery</name>
              <value>select * from ad(必须是一条select语句,什么都可以)</value>
            </parameter>
            <parameter>
              <name>maxIdle</name>
              <value>2</value>
            </parameter>
            <parameter>
              <name>maxActive</name>
              <value>4</value>
            </parameter>
            <parameter>
              <name>driverClassName</name>
              <value>com.microsoft.jdbc.sqlserver.SQLServerDriver(随数据库不同而改变)</value>
            </parameter>
            <parameter>
              <name>maxWait</name>
              <value>5000</value>
            </parameter>
            <parameter>
              <name>user(DB用户名)</name>
              <value>sa</value>
            </parameter>
            <parameter>
              <name>username(DB用户名)</name>
              <value>sa</value>
            </parameter>
            <parameter>
              <name>password</name>
              <value>你的数据库密码</value>
            </parameter>
          </ResourceParams>
        </Context>
强烈建议改动前备份server.xml文件。否则可能会造成服务器不能启动!
我的e-mail是 [email protected]欢迎与我联系!