我不确定为什么tomcat无法看到 WEB-INF / context.xml ,而且我在IntelliJ中没有 META-INF 文件夹。
我得到一个例外:无法为连接URL'null'创建类”的JDBC驱动程序。
我真的很喜欢IntelliJ,但是这个问题让我很生气,我在eclipse中尝试了这段代码,但它在IntelliJ却没有。有人知道为什么吗?
我真的很陌生。
这是servlet文件“ TestServlet”中的代码:
package com.luv2code.web.jdbc;
import javax.annotation.Resource;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.sql.DataSource;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
@WebServlet(name = "TestServlet", urlPatterns = {"/TestServlet"})
public class TestServlet extends HttpServlet {
@Resource(name = "jdbc/web_student_tracker")
private DataSource dataSource;
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// Step 1: set up printWriter
PrintWriter out = response.getWriter();
response.setContentType("text/plain");
// Step 2: get a connection to database
Connection connection = null;
Statement statement = null;
ResultSet resultSet = null;
try {
connection = dataSource.getConnection();
// Step 3: create sql statement
String sql = "select * from student";
statement = connection.createStatement();
// Step 4: Execute SQL query
resultSet = statement.getResultSet();
// Step 5: process the results
while (resultSet.next()){
String email = resultSet.getString("email");
out.println(email);
System.out.println(email);
}
} catch (Exception e) {
System.out.println(e.getMessage());
}
}
}
这是来自context.xml的代码:
<?xml version="1.0" encoding="UTF-8"?>
<Context>
<Resource name="jdbc/web_student_tracker"
auth="Container" type="javax.sql.DataSource"
maxActive="20" maxIdle="5" maxWait="10000"
username="webstudent" password="webstudent"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/web_student_tracker"/>
</Context>
答案 0 :(得分:0)
文件context.xml
属于Apache Tomcat。 Apache Tomcat启动时,它将读取文件context.xml
,Tomcat会搜索类com.mysql.jdbc.Driver
,但找不到。
将文件mysql-connector-java-5.1.38-bin.jar
放置到%CATALINA_HOME%\lib
而不是Web应用程序的lib
目录中。
答案 1 :(得分:0)
我找到了答案,tomcat不起作用的原因是我使用的是旧版本的jdbc jar,但是我使用的是tomcat v9,所以这就是为什么我两天没睡觉了。