qq_28577023
不是我所闻
采纳率59.1%
2015-12-18 08:23 阅读 1.6k
已采纳

javaweb 中的连接池出错

10

出错提示

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

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

5条回答 默认 最新

  • 已采纳
    wr10980170 王倔驴 2015-12-18 11:03

    需要在环境或系统中指定类名,或者一个子程序参数,或者在应用程序资源文件中初始化~

    点赞 1 评论 复制链接分享
  • baokx 一缕清风007 2015-12-18 09:30

    你的测试类是怎么被调用的贴出来看看。

    点赞 评论 复制链接分享
  • baokx 一缕清风007 2015-12-18 09:31

    你的测试类是怎么被调用的贴出来看看。

    点赞 评论 复制链接分享
  • sinat_31535993 sinat_31535993 2015-12-18 10:01
    点赞 评论 复制链接分享
  • clinuxyj DeepJoseph 2015-12-20 03:13

    你的配置文本为啥没加到你的连接代码中去呀~~~

    点赞 评论 复制链接分享

相关推荐