sql >> Base de Datos >  >> RDS >> Mysql

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

Cambie el alcance a compile :

<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>5.1.17</version>
    <type>jar</type>
    <scope>compile</scope>
</dependency>

Lo cual, dado que es el alcance predeterminado, corresponde a dejar de lado la definición del alcance, lo mismo cuenta para el tipo:

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

Echa un vistazo a esto:https://maven.apache .org/guides/introduction/introduction-to-dependency-mechanism.html para obtener información detallada sobre el alcance.

Aquí hay una información rápida para su fondo:

Ha especificado que el controlador JDBC tenga un alcance runtime . De todos modos, la mayoría de los IDE ignorarán los ámbitos y agregarán todas sus dependencias a su classpath (por ejemplo, el classpath utilizado cuando ejecuta algo fuera de eclipse. Por el alcance runtime le está diciendo a maven que no debe empaquetar esa dependencia en su contenedor final ya que el entorno de ejecución "proporcionará esa dependencia en runtime . P.ej. tendría que agregarlo manualmente al classpath al llamar a su jar o cambiar el alcance a compile lo que conducirá a que el contenedor del controlador se empaquete dentro de su contenedor y esté disponible en tiempo de ejecución.