各位老大,用tomcat的連線池在application獲得連線的問題

Q088發表於2006-03-19
public class DBConnection {
/**
* 構造方法
*/
public DBConnection(){
}

/** 建立連線
*/
public Connection createConnection() {
try{
Context ctx = new InitialContext();
DataSource ds = (DataSource)ctx.lookup("java:comp/env/jdbc/sql");
if( ds != null){
return ds.getConnection();
}
}catch(NamingException e){
return null;
}catch(SQLException e){
return null;
}
return null;
}

//測試方法
public static void main(String[] args){
DBConnection dbc = new DBConnection();
try{
Connection con = dbc.createConnection();
System.out.println(con.toString());
PreparedStatement ptmt =
con.prepareStatement("select * from userinfo");
ResultSet rst = ptmt.executeQuery();
while(rst.next()){
System.out.println(rst.getString(1));
System.out.println(rst.getString(2));
}
rst.close();
ptmt.close();
con.close();
}catch(Exception e){
e.printStackTrace();
}
}

各為老大,大哥,大哥大,前輩
我用的是tomcat的內建連線池
在jsp頁面中我用上面的方法測試可以得到連線訪問資料庫
但是在applecation中我用這個main()方法測試,卻得不到連線
我設斷點除錯,
DataSource ds = (DataSource)ctx.looku("java:comp/env/jdbc/sql");
在這一句出現了異常,返回null
detailMessage: 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頁面中可以獲得連線,而用applecation的main方法卻不行呢?

相關文章