Je suis confronté à un problème de connexion à H2
c'est mon pom.xml:
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>.</groupId>
<artifactId>dbConnection</artifactId>
<name>Db Connection</name>
<packaging>war</packaging>
<version>0.1</version>
<dependencies>
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<version>1.3.176</version>
</dependency>
</dependencies>
</project>
et c'est mon code principal
import Java.sql.*;
public class DbConnection
{
static final String DB_URL = "jdbc:h2:tcp://localhost/~/test;AUTO_SERVER=TRUE";
public static void main(String[] args) throws Exception
{
try
{
Class.forName("org.h2.Driver");
Connection conn = DriverManager.getConnection(DB_URL,"sa","");
conn.close();
}
catch(ClassNotFoundException ex)
{
System.out.println( "ERROR: Class not found: " + ex.getMessage());
}
}
}
est toujours montrer que la classe n'est pas trouvée: org.h2.Driver
Vous devez définir la portée sur runtime pour que le pilote h2 soit inclus dans votre fichier war:
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<version>1.4.190</version>
<scope>runtime</scope>
</dependency>
J'ai eu le même problème avec IntelliJ, il n'a pas pu trouver org.h2.Driver
. J'ai essayé plusieurs solutions sur le Web, mais après le redémarrage simple d'IntelliJ, le problème a été résolu.
J'espère que cela vous aidera à gagner du temps.
Vous avez trouvé la réponse ici supprimez la portée de l'exécution
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
#removed this -> <scope>test</scope> #
</dependency>