目次
spring tools suite からH2databaseとmybatisを用いたmavenプロジェクトのJunitテストをしようとした時に以下のエラーが発生
事象
spring tools suite からH2databaseとmybatisを用いたmavenプロジェクトのJunitテストをしようとした時に以下のエラーが発生
エラー内容
Caused by: java.lang.ClassNotFoundException: org.h2.DriverCaused by: java.lang.ClassNotFoundException: org.h2.Driver at java.net.URLClassLoader.findClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at org.apache.commons.dbcp2.BasicDataSource.createConnectionFactory(BasicDataSource.java:2131) ... 50 common frames omitted
原因
H2データベースのライブラリとのパスが繋がっていないため発生
解決策
pom.xmlのprofilesにcom.h2databaseを設定する。
<profiles> <profile> <id>local</id> <activation> <activeByDefault>true</activeByDefault> </activation> <properties> <resource.directory>src/main/resources</resource.directory> <buildFinalName>${project.artifactId}-${project.version}</buildFinalName> </properties> <dependencies> <dependency> <groupId>com.h2database</groupId> <artifactId>h2</artifactId> <scope>runtime</scope> </dependency> </dependencies> </profile> <profile> <id>test-server</id> <properties> <resource.directory>${basedir}/configs/test-server/resources</resource.directory> <buildFinalName>${project.artifactId}-${project.version}-test-server</buildFinalName> </properties> </profile> <profile> <id>production-server</id> <properties> <resource.directory>${basedir}/configs/production-server/resources</resource.directory> <buildFinalName>${project.artifactId}-${project.version}-production-server</buildFinalName> </properties> </profile> </profiles>