benz
benz

Reputation: 725

Jersey: The mysql java.lang.ClassNotFoundException: com.mysql.jdbc.Driver although inclueded

I am trying to send GET request from the postman chrome plugin and I am getting this error java.lang.ClassNotFoundException: com.mysql.jdbc.Driver I have already included the mysql-connector-java-5.1.35-bin in my project

jersey endpoint:

@Path("/test")
public class Driver{

    @GET
    @Produces(MediaType.TEXT_PLAIN)
    public void mysqltest(){
        Database db = new Database();
        db.connection();

    }
}

Database class:

public class Database {


    public  void connection() {
        try {
            Class.forName("com.mysql.jdbc.Driver");
            System.out.println("jar works :) ");

        } catch (ClassNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
}

I have already tested it with this class in the same project and I am getting the output driver works

Driver class:

public class Driver {

    public static void main(String[] args){
        connection();
    }

    public static  void connection() {
        try {
            Class.forName("com.mysql.jdbc.Driver");
            System.out.println("driver works :) ");

        } catch (ClassNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

}

Why when am I calling it from the jersey method I am getting the error in the title?

Upvotes: 1

Views: 352

Answers (2)

JessePinkman
JessePinkman

Reputation: 651

You need to add the following dependency in your pom.xml file. (I assume you are working with Maven project)

<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>5.1.39</version>
</dependency>

P.S. I was getting the same exception. This worked for me.

Upvotes: 1

Brian Topping
Brian Topping

Reputation: 3295

Adding to what @LuiggiMendoza wrote, you need to understand the packaging of your artifacts and trace the classloader delegation to understand if the classloader that invokes your Driver class also has access to the MySQL driver JAR. For instance, adding the MySQL JAR to WEB-INF/lib may not help if Jersey is a dependency of an EJB JAR that itself is in the WEB-INF/lib of the webapp.

Upvotes: 0

Related Questions