我尝试使用 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 类型:简单