-
Notifications
You must be signed in to change notification settings - Fork 66
Closed
Description
Hi,
For my rml config running docker run ... rmlio/rmlmapper-java:v8.0.0 (Oracle DB) fails with the following:
09:40:44.798 [main] DEBUG b.u.i.k.functions.agent.AgentFactory.createFromFnO(59) - AgentImpl initialised!
Exception in thread "main" java.lang.NoClassDefFoundError: oracle/xdb/XMLType
at oracle.jdbc.driver.NamedTypeAccessor.getString(NamedTypeAccessor.java:407)
at oracle.jdbc.driver.GeneratedStatement.getString(GeneratedStatement.java:232)
at oracle.jdbc.driver.GeneratedScrollableResultSet.getString(GeneratedScrollableResultSet.java:398)
at oracle.jdbc.driver.GeneratedResultSet.getString(GeneratedResultSet.java:648)
at be.ugent.idlab.knows.dataio.access.RDBAccess.getCSVInputStream(RDBAccess.java:215)
at be.ugent.idlab.knows.dataio.access.RDBAccess.getInputStream(RDBAccess.java:158)
at be.ugent.idlab.knows.dataio.iterators.CSVWSourceIterator.bootstrap(CSVWSourceIterator.java:50)
at be.ugent.idlab.knows.dataio.iterators.CSVWSourceIterator.<init>(CSVWSourceIterator.java:39)
at be.ugent.idlab.knows.dataio.iterators.CSVSourceIterator.<init>(CSVSourceIterator.java:22)
at be.ugent.rml.records.TabularSourceFactory.getRecordsForCSV(TabularSourceFactory.java:79)
at be.ugent.rml.records.TabularSourceFactory.getRecords(TabularSourceFactory.java:33)
at be.ugent.rml.records.RecordsFactory.getRecords(RecordsFactory.java:143)
at be.ugent.rml.records.RecordsFactory.createRecords(RecordsFactory.java:74)
at be.ugent.rml.Executor.getRecords(Executor.java:359)
at be.ugent.rml.Executor.executeWithFunction(Executor.java:168)
at be.ugent.rml.Executor.execute(Executor.java:155)
at be.ugent.rml.cli.Main.run(Main.java:440)
at be.ugent.rml.cli.Main.main(Main.java:49)
Caused by: java.lang.ClassNotFoundException: oracle.xdb.XMLType
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(Unknown Source)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(Unknown Source)
at java.base/java.lang.ClassLoader.loadClass(Unknown Source)
... 18 more
I first suspected this had to with Oracle licensing, that prohibits adding the required dependency directly (see issue #146 (comment) for example). However, going by the Readme this issue has been resolved since v6.1.0.
After some more investigation I added the xdb6 jarfile. This makes my setup run as it's supposed to!
docker run --rm ^
...
-v "%cd%"/oracledriver:/oracle-driver ^
--entrypoint java ^
rmlio/rmlmapper-java:v8.0.0 ^
-cp "/rmlmapper.jar:/oracle-driver/xdb6-18.3.0.0.jar" be.ugent.rml.cli.Main ^
...From my experience I cannot judge if adding xdb6 always is a hard requirement when using RML on an Oracle DB, or if it is specific to my case. Mainly flagging here in case this rings a bell to maintainers, in which case adding a notice about this in the readme would be a good improvement.
Metadata
Metadata
Assignees
Labels
No labels