classNotFound Exception when using JDBC for MYSQL on Tomcat in eclipse

[亡魂溺海] 提交于 2019-12-19 12:02:01

问题


This seems to be a common problem, but I could not find a working solution. I've looked through dozens of thread and have been working with my teacher. I am trying to connect to MYSQL using JDBC. I'm also using a tomcat server and running xubuntu 12.04. I am getting ClassNotFound exception.

I've tried the JDBC mysql-connector-java.jar driver placed in both /tomact/lib and /usr/share/java and have manually built paths in each instance. I've also tried adding paths through deploy assembly. I've tried using EXPORT CLASSPATH. Nothing has worked. I cannot get this exception to stop being thrown. Does anyone have other solutions I can try?

my code:

public static Connection getConnection() {
    if(connection!=null){
        return connection;
    }else{
        try{
            Class.forName("com.mysql.jdbc.Driver").newInstance();
            String dbURL = "jdbc:mysql://144.91.20.136:3306/jewelryInventoryGallison";
            String username = "javaee";
            String password = "mills2012";

            connection = DriverManager.getConnection(dbURL, username, password);
            return connection;
        } catch (Exception ex) {
            ex.printStackTrace();
            return null;
        }
    }
}

test class:

public static void main(String[] args) throws Exception{ 
      Connection conn = DatabaseUtils.getConnection();
      Statement st = conn.createStatement();
      ResultSet rs = st.executeQuery("SELECT * FROM Inventory");
      while(rs.next()) {
       System.out.println(rs.getString("name"));
      }

 }

and trace:

java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:186)
at utils.DatabaseUtils.getConnection(DatabaseUtils.java:19)
at utils.DatabaseUtils.main(DatabaseUtils.java:34)

Exception in thread "main" java.lang.NullPointerException at utils.DatabaseUtils.main(DatabaseUtils.java:35)

your help will be greatly appreciated!


回答1:


java.lang.ClassNotFoundException: com.mysql.jdbc.Driver

You missing MySQL driver library. Since, you are using Mysql database, make sure you have included mysql-connector-java.

<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>8.0.8-dmr</version>
</dependency>



回答2:


modify 'common.loader' property in the 'catalina.properties' file in the tomcat 'conf' folder as shown below

common.loader=${catalina.base}/lib,${catalina.base}/lib/*.jar,${catalina.home}/lib,${catalina.home}/lib/*.jar

Also add 'mysql-connector-java-5.0.8-bin.jar' in the tomcat 'lib' folder




回答3:


Putting the MySQL-connector-java-5.1.6.jar in the Tomcat/lib directory finally worked for me. Shouldn't have to do this so I suspect my Tomcat installation isn't optimum and deploying the war file might be problematic




回答4:


Version Mismatch could cause this error. I myself was stuck in this error for days. Please check the version of jdbc connector. Latest connectors require java 1.8. In my case my tomcat version didn't support the connector version i added so please check for that also.

PS : Tomcat - 8.0.32 ; mysql-connector - 5.1.30 with java 1.7 works (Y)



来源:https://stackoverflow.com/questions/13853054/classnotfound-exception-when-using-jdbc-for-mysql-on-tomcat-in-eclipse

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!