Description
Describe the bug
tomcat + spring boot
Caused by: java.sql.SQLException: No suitable driver found for jdbc:sqlite::memory:
To Reproduce
TLDR : clone my minimal project https://github.com/guiguilechat/xerial-sqlite-testtomcat and run the sh/test script
I created a spring boot app, that is built with maven-war-plugin (package phase, war type), and has the
<dependency>
<groupId>org.xerial</groupId>
<artifactId>sqlite-jdbc</artifactId>
</dependency>
(managed in root pom, v3.49.1.0)
I can run it locally with an main() calling SpringApplication.run
In that case it can open a connection to a new inmemory db no problem (which I use to load downloaded sqlite file and integrate the data).
However when I scp the war to the tomcat directory , the tomcat app complains
Caused by: java.sql.SQLException: No suitable driver found for jdbc:sqlite::memory:
at java.sql/java.sql.DriverManager.getConnection(DriverManager.java:708) ~[java.sql:na]
at java.sql/java.sql.DriverManager.getConnection(DriverManager.java:253) ~[java.sql:na]
Environment (please complete the following information):
- OS: [Ubuntu 24.04.2 LTS]
- sqlite-jdbc 3.49.1.0
Additional context
I know of #145 (comment)
I tried this (by copying the plugin conf from https://repo1.maven.org/maven2/org/springframework/boot/spring-boot-starter-parent/3.4.3/spring-boot-starter-parent-3.4.3.pom and adding the execution on package) but it did not work(same issue).
It's weird because the app runs against a postgresql instance (in the same server) and can find it no problem. I also added the oracle driver and was able to dockerize it against a oracle docker image.
Also when I look in the packaged war, there is no META-INF/services/java.sql.Driver ; only maven/ and MANIFEST.MF