【发布时间】:2020-01-22 21:53:10
【问题描述】:
我是一个完全的初学者,我正在使用 Tomcat 9.0、MySQL 和 jdbc 做一个简单的 jee 项目。
在尝试连接到数据库时,我得到:
javax.naming.NameNotFoundException: Name [jdbc/city2] is not bound in this Context. Unable to find [jdbc].
我已经尝试将配置文件添加到 Tomcat 文件夹 apache-tomcat-9.0.24\conf\Catalina\localhost,但它什么也没做。 这就是我的 ConnectionProvider 类的样子:;
private static DataSource dataSource;
public static Connection getConnection() throws SQLException {
return getDSInstance().getConnection();
}
private static DataSource getDSInstance() {
if (dataSource == null) {
try {
Context initContext = new InitialContext();
dataSource = (DataSource) initContext.lookup("java:comp/env/jdbc/city2");
} catch (NamingException e) {
e.printStackTrace();
}
}
return dataSource;
}
我的 context.xml 文件看起来像:
<Context>
<Resource name="jdbc/city2"
auth="Container"
type="javax.sql.DataSource"
initialSize="10"
maxTotal="100"
maxIdle="30"
maxWaitMillis="10000"
username="root"
password="admin"
driverClassName="com.mysql.cj.jdbc.Driver"
url="jdbc:mysql://localhost:3306/city2?useSSL=false&serverTimezone=UTC" />
</Context>
【问题讨论】:
-
这是一个 JNDI 错误,它与您的 servlet 配置有关。与 JDBC 无关。
标签: java mysql servlets jdbc jndi