首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Tomcat在尝试从Servlet连接时没有看到我的CONTEXT.XML,我也使用IDEA Intellij

问Tomcat在尝试从Servlet连接时没有看到我的CONTEXT.XML,我也使用IDEA Intellij
EN

Stack Overflow用户
提问于 2018-08-19 08:38:02
回答 2查看 745关注 0票数 1

我不知道为什么tomcat不能看到WEB-INF/context.xml,Als,我在IntelliJ中没有文件夹META。

我得到了一个例外:不能为连接URL 'null‘创建类的JDBC驱动程序。

我真的很喜欢IntelliJ,但是这个问题让我很生气,我在eclipse中尝试了这段代码--它可以工作,但是在IntelliJ不工作。有人知道为什么吗?

我对这一切都很陌生。

这是servlet文件“TestServlet”中的代码:

代码语言:javascript
复制
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的代码:

代码语言:javascript
复制
<?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>

这是截图

​

EN

回答 2

Stack Overflow用户

发布于 2018-08-19 09:32:41

文件context.xml属于Apache。当Apache启动时,它读取文件context.xml,Tomcat查找类com.mysql.jdbc.Driver,但找不到。

将文件mysql-connector-java-5.1.38-bin.jar放到%CATALINA_HOME%\lib中,而不是在web的lib目录中。

票数 0
EN

Stack Overflow用户

发布于 2018-08-20 16:46:24

我找到了答案,tomcat不起作用的原因是我有旧版本的jdbc,但我使用的是tomcat v9,所以我有2天没有睡觉。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51915933

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档