jsp+tomcat4.1+sql2000连接池的问题 急~~~~~~~
<Context path="/My_web" docBase="My_web" debug="5" reloadable="true">
<Resource name="jdbc/LinkDB" auth="Container" type="javax.sql.DataSource"/>
<ResourceParams name="jdbc/LinkDB">
<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://localhost:1433;databaseName=oyw_web
</value>
</parameter>
<parameter>
<name>username</name>
<value>sa</value>
</parameter>
<parameter>
<name>password</name>
<value>oyw75422838</value>
</parameter>
<parameter>
<name>maxActive</name>
<value>20</value>
</parameter>
<parameter>
<name>maxIdle</name>
<value>20</value>
</parameter>
<parameter>
<name>maxWait</name>
<value>-1</value>
</parameter></ResourceParams>
</Context>
以上是我的配置文件。
<%@ page contentType="text/html;charset=GBK"%>
<%@ page import="java.util.*" %>
<%@ page import="java.sql.*" %>
<%@ page import="javax.sql.*" %>
<%@ page import="javax.naming.*" %>
<%
try{
Context ctx = new InitialContext();
DataSource ds =(DataSource)ctx.lookup("java:comp/env/jdbc/LinkDB");
Connection conn = ds.getConnection();
Statement stmt = conn.createStatement();
String strSql = "select id ,username from MY_USERS";
ResultSet rs = stmt.executeQuery(strSql);
if(rs.next()){
out.println(""+rs.getLong(1)+rs.getString(2));
}
rs.close();
conn.close();
}catch(Exception ex){
ex.printStackTrace();
throw new SQLException("cannot get Connection pool.");
}
%>
//以上是jsp页面测试,能正常连接数据库读取数据
import java.sql.*;
import javax.sql.*;
import javax.naming.*;
import java.util.*;
public class DBConnectionManager{
String foo = "Not Connected";
long bar = -1;
public void init() {
try{
Context ctx = new InitialContext();
DataSource ds =(DataSource)ctx.lookup("java:comp/env/jdbc/LinkDB");
Connection conn = ds.getConnection();
Statement stmt = conn.createStatement();
String strSql = "select id ,username from MY_USERS";
ResultSet rs = stmt.executeQuery(strSql);
if(rs.next()){
System.out.println(""+rs.getLong(1)+rs.getString(2));
}
rs.close();
conn.close();
}catch(Exception ex){
ex.printStackTrace();
}
}
public static void main(String[] args){
DBConnectionManager dcm=new DBConnectionManager();
dcm.init();
}
}
//以上是写在bean中的测试,总是出现异常:
javax.naming.NoInitialContextException: Need to specify class name in environmen
t or system property, or as an applet parameter, or in an application resource f
ile: java.naming.factory.initial
at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:6
40)
at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:243
)
at javax.naming.InitialContext.getURLOrDefaultInitCtx(InitialContext.jav
a:280)
at javax.naming.InitialContext.lookup(InitialContext.java:347)
at DBConnectionManager.init(DBConnectionManager.java:20)
at DBConnectionManager.main(DBConnectionManager.java:38)
Press any key to continue...
不解,请各位帮帮忙,看一下,急~连接池的问题已经苦恼我很久了。
在线等待你的回复!再次感谢!