我尝试使用 SQLite 和 h2 数据库,在类路径中使用 sqlite-jdbc-3.20.1.jar /h2-1.4.195.jar。
我的 pom.xml 中有 h2 驱动程序 jar,在运行时似乎没有什么不同。
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<version>1.4.195</version>
</dependency>
我将 jar 复制到目标目录,希望“java -cp target/*”可以让这些 jar 直接进入类路径。一切都无济于事。我收到这个让我发疯的错误,它不会告诉我它没有找到什么类
Causing: java.sql.SQLException: Unable to load class:
来自 ClassLoader:sun.misc.Launcher$AppClassLoader@18b4aac2;ClassLoader:sun.misc.Launcher$AppClassLoader@18b4aac2
` ... 24 更多
... org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator:HHH000342:无法获得查询元数据的连接
Caused by: java.lang.ClassNotFoundException: at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:348) at > >org.tomcat.jdbc.pool.ClassLoaderUtil.loadClass(ClassLoaderUtil.java:38)
我已经打印了 maven 树并使用了 verbose:class 选项并确实找到了加载的驱动程序类。我的 Maven 依赖项中有 dropwizard-hibernate 包。好的,有什么方法可以强迫这个东西告诉我它找不到哪个类?!
附录:
我的配置.yml
记录:
级别:信息
记录器:
com.srini.testdw:调试
数据库:
driverClass:org.h2.Driver
用户:“sa”
密码: ””
网址:jdbc:h2:./testdb
特性:
字符集:UTF-8
maxWaitForConnection: 1s
validationQuery: "/* MyService 健康检查 */ SELECT 1"
最小尺寸:8
最大尺寸:32
checkConnectionWhileIdle:假
evictionInterval: 10s
minIdleTime:1分钟
hibernate.dialect:org.hibernate.dialect.H2Dialect
hibernate.show_sql:真
hibernate.generate_statistics: false
hibernate.hbm2ddl.auto:验证
服务器:
minThreads: 2
maxQueuedRequests:3
类型:简单