クラスパスに sqlite-jdbc-3.20.1.jar /h2-1.4.195.jar を使用して、SQLite および h2 データベースを操作しようとしました。
pom.xml に h2 ドライバー jar がありますが、実行時に違いはないようです。
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<version>1.4.195</version>
</dependency>
「java -cp target/*」がこれらのjarファイルをクラスパスに直接取得できることを期待して、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 パッケージがあります。OK、どのクラスが見つからないか教えてくれるように強制する方法はありますか?!
補遺:
私のConfig.yml
ロギング: レベル: 情報 ロガー: com.srini.testdw: デバッグ データベース: driverClass: org.h2.Driver ユーザー:「さ」 パスワード: "" URL: jdbc:h2:./testdb プロパティ: 文字セット: UTF-8 maxWaitForConnection: 1 秒 validationQuery: "/* MyService Health Check */ SELECT 1" 最小サイズ: 8 最大サイズ: 32 checkConnectionWhileIdle: false エビクション間隔: 10 秒 minIdleTime: 1 分 hibernate.dialect: org.hibernate.dialect.H2Dialect hibernate.show_sql: 真 hibernate.generate_statistics: false hibernate.hbm2ddl.auto: 検証 サーバ: 最小スレッド数: 2 maxQueuedRequests: 3 タイプ: シンプル