tomcat+sql 2000连接池入门小问题
这几天在搞连接池遇到个问题请教一下大家
我在jsp里写:获取连接并打印相关成功取得信息,测试成功能取得和连接池相关测试都没问题;
但我想把Java代码即从连接池里取连接,从jsp中给提取出来放到Javabean等中那要用连接给它就OK,实现jsp只管显示而不负
责其他,结果出问题:
javax.naming.NoInitialContextException: 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
at javax.naming.spi.NamingManager.getInitialContext(Unknown Source)
at javax.naming.InitialContext.getDefaultInitCtx(Unknown Source)
at javax.naming.InitialContext.getURLOrDefaultInitCtx(Unknown Source)
at javax.naming.InitialContext.lookup(Unknown Source)
at lmj.zdsoft.efforts.db.pool.Conn.getConText(Conn.java:33)
at lmj.zdsoft.efforts.db.pool.Conn.main(Conn.java:52)
我的Java代码为:
public class Conn {
static Connection conn = null;
synchronized public static void getConText() throws SQLException {
try {
Context ic = new InitialContext();
Context cont = (Context)ic.lookup("java:comp/env");
DataSource dataSource = (DataSource)cont.lookup("jdbc/text");
conn = dataSource.getConnection();
if(conn!=null){
System.out.print("YES");
System.out.print(conn.toString());
conn.close();
}else{
System.out.print("NO");
}
} catch (NamingException e) {
e.printStackTrace();
}
// return conn;
}
public static void main(String[] s) {
try {
getConText();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
xml配置为:放在Tomcat 6.0\conf\Catalina\localhost目录下
<Context path= "/DBPool" docBase= "${catalina.home}/webapps/DBPool"
debug= "0" reloadable= "true " crossContext= "true ">
<Resource name="jdbc/text"
auth="Container"
type="javax.sql.DataSource"
driverClassName="com.microsoft.jdbc.sqlserver.SQLServerDriver"
url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=studentManage"
username="sa"
password="8123146"
maxActive="900"
maxIdle="1"
maxWait="10"
factory="org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory"
removeAbandoned="true" removeAbandonedTimeout="1" logAbandoned="true"
/>
</Context>
只要实现Java代码与从jsp里分离,专门一个类来实现连接池;给个完整的代码我参考也行
分不够我再加
小弟先谢谢大家了