I am using Gluonhq with JDBC in Linux.
Version info: 'GraalVM 22.1.0.1 Java 17 CE'
There are no problems with postgresql. The problems begin when I work with sqlite.
My JDBC connect:
Connection connection = DriverManager.getConnection(
"jdbc:sqlite:/home/alex/IdeaProjects/db/base/materials.db"
);
I do
mvn clean gluonfx:runagent
Everything works correctly, the data from sqlite database is read.
Then I do
mvn clean gluonfx:build
I got
java.lang.NoClassDefFoundError: org/graalvm/nativeimage/hosted/RuntimeResourceAccess org.sqlite.nativeimage.SqliteJdbcFeature.handleLibraryResources(SqliteJdbcFeature.java:54) Caused by: java.lang.ClassNotFoundException: org.graalvm.nativeimage.hosted.RuntimeResourceAccess
Here you can view the entire maven log
I added
<nativeImageArgs>
<arg>-Dorg.sqlite.lib.exportPath=/home/alex/IdeaProjects/</arg>
</nativeImageArgs>
And got new error
java.lang.NoClassDefFoundError: org/graalvm/nativeimage/hosted/RuntimeJNIAccess org.sqlite.nativeimage.SqliteJdbcFeature.registerJNICalls(SqliteJdbcFeature.java:70 Caused by: java.lang.ClassNotFoundException: org.graalvm.nativeimage.hosted.RuntimeJNIAccess
Row 70 of SqliteJdbcFeature.java: RuntimeJNIAccess.register(NativeDB.class);
I checked jni-config.json
{
"name":"org.sqlite.core.DB",
"methods":[
{"name":"onCommit","parameterTypes":["boolean"] },
{"name":"onUpdate","parameterTypes":["int","java.lang.String","java.lang.String","long"] },
{"name":"throwex","parameterTypes":[] },
{"name":"throwex","parameterTypes":["int"] }
]
},
{
"name":"org.sqlite.core.DB$ProgressObserver",
"methods":[{"name":"progress","parameterTypes":["int","int"] }]
},
{
"name":"org.sqlite.core.NativeDB",
"fields":[
{"name":"busyHandler"},
{"name":"commitListener"},
{"name":"pointer"},
{"name":"progressHandler"},
{"name":"updateListener"}
],
"methods":[
{"name":"stringToUtf8ByteArray","parameterTypes":["java.lang.String"] },
{"name":"throwex","parameterTypes":["java.lang.String"] }
]
}, ...
Help!!
I recolved my problem by replacing dependecy
<dependency>
<groupId>org.xerial</groupId>
<artifactId>sqlite-jdbc</artifactId>
<version>3.42.0.0</version>
</dependency>
witch
<dependency>
<groupId>io.github.willena</groupId>
<artifactId>sqlite-jdbc</artifactId>
<version>3.35.5.3</version>
</dependency>