问题描述
- javaweb 中的连接池出错
-
出错提示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
下面是我的测试的类```public class myConn {
Connection conn;// 初始化创建连接 public myConn() { Context ic; try { ic = new InitialContext(); DataSource s = (DataSource) ic.lookup("java:comp/env/jdbc/conn"); conn = s.getConnection(); } catch (NamingException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } } // 外界得到连接 public Connection getConnection() { return conn; } // 外界关闭数据库连接 public void closeConn() { try { conn.close(); } catch (SQLException e) { // TODO Auto-generated catch block System.out.println("数据库连接关闭失败"); } }
}
这是tomcat的context中的配置
name="jdbc/conn"
auth="Container"
type="javax.sql.DataSource"
factory="org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/exchange"
username="root" password="500235"
maxActive="20" maxIdle="10" maxWait="1000"
/>这是tomcat的web配置
exchange DataSource
jdbc/conn
javax.sql.DataSource
Container
解决方案
需要在环境或系统中指定类名,或者一个子程序参数,或者在应用程序资源文件中初始化~
解决方案二:
你的测试类是怎么被调用的贴出来看看。
解决方案三:
你的测试类是怎么被调用的贴出来看看。
解决方案四:
http://bbs.csdn.net/topics/320003189
解决方案五:
你的配置文本为啥没加到你的连接代码中去呀~~~