tomcat5.0.28 连接池配置如下:
<?xml version='1.0' encoding='utf-8'?>
<Server>
  <Listener className="org.apache.catalina.mbeans.ServerLifecycleListener"/>
  <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener"/>
  <GlobalNamingResources>
    <Environment name="simpleValue" type="java.lang.Integer" value="30"/>
    <Resource auth="Container" description="User database that can be updated and saved" name="UserDatabase" type="org.apache.catalina.UserDatabase"/>
    <Resource name="jdbc/wyl" type="javax.sql.DataSource"/>
    <ResourceParams name="UserDatabase">
      <parameter>
        <name>factory</name>
        <value>org.apache.catalina.users.MemoryUserDatabaseFactory</value>
      </parameter>
      <parameter>
        <name>pathname</name>
        <value>conf/tomcat-users.xml</value>
      </parameter>
    </ResourceParams>
    <ResourceParams name="jdbc/wyl">
      <parameter>
        <name>validationQuery</name>
        <value>select * from orgmodel_userinfo</value>
      </parameter>
      <parameter>
        <name>url</name>
        <value>jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=wyl</value>
      </parameter>
      <parameter>
        <name>password</name>
        <value></value>
      </parameter>
      <parameter>
        <name>maxActive</name>
        <value>4</value>
      </parameter>
      <parameter>
        <name>maxWait</name>
        <value>5000</value>
      </parameter>
      <parameter>
        <name>driverClassName</name>
        <value>com.microsoft.jdbc.sqlserver.SQLServerDriver</value>
      </parameter>
      <parameter>
        <name>username</name>
        <value>sa</value>
      </parameter>
      <parameter>
        <name>maxIdle</name>
        <value>2</value>
      </parameter>
    </ResourceParams>
  </GlobalNamingResources>
  <Service name="Catalina">
    <Connector acceptCount="100" connectionTimeout="20000" disableUploadTimeout="true" port="8080" redirectPort="8443" maxSpareThreads="75" maxThreads="150" minSpareThreads="25">
    </Connector>
    <Connector port="8009" protocol="AJP/1.3" protocolHandlerClassName="org.apache.jk.server.JkCoyoteHandler" redirectPort="8443">
    </Connector>
    <Engine defaultHost="localhost" name="Catalina">
      <Host appBase="webapps" name="localhost">
        <DefaultContext className="org.apache.catalina.core.StandardDefaultContext">
          <ResourceLink global="jdbc/wyl" name="jdbc/wyl" type="javax.sql.DataSource"/>
        </DefaultContext>
        <Logger className="org.apache.catalina.logger.FileLogger" prefix="localhost_log." suffix=".txt" timestamp="true"/>
      </Host>
      <Logger className="org.apache.catalina.logger.FileLogger" prefix="catalina_log." suffix=".txt" timestamp="true"/>
      <Realm className="org.apache.catalina.realm.UserDatabaseRealm"/>
    </Engine>
  </Service>
</Server>
在程序中调用出现如下异常:Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file:  java.naming.factory.initial
在jsp中调用出现如下异常:Name java:comp is not bound in this Context
已经困惑好多天了,请各位高手指教。在线等待!

解决方案 »

  1.   

    <Resource name="jdbc/wyl" type="javax.sql.DataSource"/>
    可能和在Java中调用的不一致
      

  2.   

    Tomcat 5.0好像需要另外建一个XML文件,放在Tomcat 5.0\conf\Catalina\localhost目录之下,
    文件名为你发布的webapps下的目录名字.内容为
    <Context path="/manager" docBase="你的目录名">
      <ResourceLink name="jdbc/wyl" global="jdbc/wyl"
                    type="javax.sql.DataSource"/></Context>
      

  3.   

    调用的是一致的,我是这样调用的,以前页用连接池连接过数据库,没有出现问题,请各位高手帮忙看看。
    package datebase;import java.sql.*;import javax.sql.DataSource;
    import javax.naming.*;/**
     * <p>
     * 数据库操作管理类,只实现数据库的连接,关闭和事务处理
     * </p>
     * 
     * @Aurhor Yeno.hhr Create Date 2005-12-9
     */
    public class DataPool { public DataPool() {
    } /**
     * <p>
     * 通过Tomcat连接池取得数据库连接
     * </p>
     * 
     * @param no
     * @return Connection 数据库连接
     * @exception NamingException,SQLException,Exception
     */
    public Connection getConnect() {
    Connection conn = null;
    try {
    Context intitCtx = new InitialContext();
    Context envCtx = (Context) intitCtx.lookup("java:comp/env");
    DataSource ds = (DataSource) envCtx.lookup("jdbc/wyl");
    conn = ds.getConnection();
    } catch (NamingException nex) {
    nex.printStackTrace();
    System.out.println("getConnect(),No correct environment!");
    } catch (SQLException sqlex) {
    sqlex.printStackTrace();
    System.out.println("getConnect(),Can't get connection!");
    }
    return conn;
    }
    /**
     * test
     * 
     * @param name
     * @return
     */
    /**
     * 
     */
    public void isConnection() {
    System.out.println("isConnection");
    Connection conn = null;
    Statement stmt = null;
    ResultSet rs = null;
    StringBuffer sb = new StringBuffer("");
    try {
    conn = this.getConnect();
    System.out.println("333333333333");
    stmt = conn.createStatement();
    sb
    .append("select * from orgmodel_userinfo where loginname='admin'");
    rs = stmt.executeQuery(sb.toString());
    while (rs.next()) {
    // System.out.println(rs.getString("loginname"));
    System.out.println(rs.getString("userid"));
    System.out.println(rs.getString("username"));
    // System.out.println(rs.getString("identityno"));
    System.out.println(rs.getString("loginname"));
    }
    } catch (SQLException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    } finally { try {
    if (rs != null) {
    rs.close();
    }
    if (stmt != null) {
    stmt.close();
    }
    if (conn != null) {
    conn.close();
    }
    } catch (SQLException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    } } public static void main(String[] args) {
    DataPool dp = new DataPool();
    dp.isConnection();
    }}