-1

我已经将 sql 连接器 .jar 添加到项目构建路径中,但是当我启动 tomcat 服务器时,它给了我以下错误。

import javax.servlet.ServletContext;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import javax.servlet.annotation.WebListener;
import java.sql.*;
import java.util.*;
@WebListener
public class MyListener implements ServletContextListener {

    public void contextInitialized(ServletContextEvent event)  { 
            try {
                Class.forName("com.mysql.jdbc.Driver");
            } catch (ClassNotFoundException e) {
                e.printStackTrace();
                System.out.println("driver not found");
            }
            try {
                Connection con = DriverManager.getConnection("jdbc:mysql://http://localhost:1080/users", "root", "root");
            } catch (SQLException e) {
                e.printStackTrace();
                System.out.println("not connected");
            }       
    }   

public void contextDestroyed(ServletContextEvent arg0)  { 
     System.out.println("project undeployed...");     
}
}

我已经将 sql 连接器 .jar 添加到项目构建路径中,但是当我启动 tomcat 服务器时,它给了我以下错误。

java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1720)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1571)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Unknown Source)
    at MyListener.contextInitialized(MyListener.java:18)
    at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4994)
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5492)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1575)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1565)
    at java.util.concurrent.FutureTask.run(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)
driver not foundjava.sql.SQLException: No suitable driver found for jdbc:mysql://http://localhost:1080/users
    at java.sql.DriverManager.getConnection(Unknown Source)
    at java.sql.DriverManager.getConnection(Unknown Source)
    at MyListener.contextInitialized(MyListener.java:25)
    at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4994)

    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5492)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1575)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1565)
    at java.util.concurrent.FutureTask.run(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)
not connected
Feb 04, 2018 5:15:07 PM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["http-bio-8080"]
Feb 04, 2018 5:15:07 PM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["ajp-bio-8009"]
Feb 04, 2018 5:15:07 PM org.apache.catalina.startup.Catalina start
INFO: Server startup in 5768 ms 
4

2 回答 2

1

您的JDBC 字符串不正确

jdbc:mysql://http://localhost:1080/users

反而

jdbc:mysql://localhost:1080/users

此外,请确保您的项目路径中有连接器 jar。

于 2018-02-04T18:08:49.337 回答
0

您应该将 jar 放在 [project path]/WEB-INF/lib 中,运行 mysql 的更好方法是使用没有 Class.forName 的 DriverManager,它将在 getConnection 中调用

于 2018-02-04T18:02:15.200 回答