泽西岛: mysql java.lang.ClassNotFoundException: com.mysql.jdbc.Driver 虽然包括在内
Jersey: The mysql java.lang.ClassNotFoundException: com.mysql.jdbc.Driver although inclueded
我正在尝试从邮递员 chrome 插件发送 GET 请求,但出现此错误 java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
我已经在我的项目中包含了 mysql-connector-java-5.1.35-bin
球衣端点:
@Path("/test")
public class Driver{
@GET
@Produces(MediaType.TEXT_PLAIN)
public void mysqltest(){
Database db = new Database();
db.connection();
}
}
数据库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();
}
}
}
我已经在同一个项目中用这个 class 测试了它,我得到了输出 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();
}
}
}
为什么我从 jersey 方法调用它时我在标题中收到错误?
添加到@LuiggiMendoza 所写的内容中,您需要了解工件的包装并跟踪 classloader 委托以了解 classloader 是否调用了您的 Driver
class 也可以访问 MySQL 驱动程序 JAR。例如,将 MySQL JAR 添加到 WEB-INF/lib 可能 如果 Jersey 是 EJB JAR 的依赖项,而该 EJB JAR 本身位于 WEB-INF/lib网络应用程序。
您需要在 pom.xml 文件中添加以下依赖项。 (我假设您正在使用 Maven 项目)
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.39</version>
</dependency>
P.S。我遇到了同样的异常。这对我有用。
我正在尝试从邮递员 chrome 插件发送 GET 请求,但出现此错误 java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
我已经在我的项目中包含了 mysql-connector-java-5.1.35-bin
球衣端点:
@Path("/test")
public class Driver{
@GET
@Produces(MediaType.TEXT_PLAIN)
public void mysqltest(){
Database db = new Database();
db.connection();
}
}
数据库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();
}
}
}
我已经在同一个项目中用这个 class 测试了它,我得到了输出 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();
}
}
}
为什么我从 jersey 方法调用它时我在标题中收到错误?
添加到@LuiggiMendoza 所写的内容中,您需要了解工件的包装并跟踪 classloader 委托以了解 classloader 是否调用了您的 Driver
class 也可以访问 MySQL 驱动程序 JAR。例如,将 MySQL JAR 添加到 WEB-INF/lib 可能 如果 Jersey 是 EJB JAR 的依赖项,而该 EJB JAR 本身位于 WEB-INF/lib网络应用程序。
您需要在 pom.xml 文件中添加以下依赖项。 (我假设您正在使用 Maven 项目)
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.39</version>
</dependency>
P.S。我遇到了同样的异常。这对我有用。