Connect to MongoDB v6.0

Hi folks,

I am struggling to connect with MongoDB v6.0 from Stardog 8.2.0. Both running on same node localhost.

adding data source to mongodb://localhost:27017/mydb throws error
"Failed to create Data Source "mydb-mongo-local": 000012:
org/bson/conversions/Bson (internal server error)"

stardog.log shows class is not found to establish connection

WARN 2023-03-16T16:53:54,805+0100 [stardog-user-3] com.complexible.stardog.protocols.http.server.StardogUndertowErrorHandler:accept(68): Unexpected exception was handled by the server
java.lang.ClassNotFoundException: org.bson.conversions.Bson
at jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:581) ~[?:?]
at jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178) ~[?:?]
at java.lang.ClassLoader.loadClass(ClassLoader.java:522) ~[?:?]
at com.complexible.stardog.virtual.vega.mongodb.MongoDbDataSource$MongoDbDataSourceFactory.create(MongoDbDataSource.java:308) ~[stardog-virtual-core-8.2.0.jar:?]
at com.complexible.stardog.virtual.vega.mongodb.MongoDbDataSource$MongoDbDataSourceFactory.create(MongoDbDataSource.java:263) ~[stardog-virtual-core-8.2.0.jar:?]
at com.complexible.stardog.virtual.DefaultVirtualGraphRegistry.createDataSource(DefaultVirtualGraphRegistry.java:886) ~[stardog-virtual-core-8.2.0.jar:?]
at com.complexible.stardog.virtual.DefaultVirtualGraphRegistry.addDataSourceWithoutClosingPrior(DefaultVirtualGraphRegistry.java:864) ~[stardog-virtual-core-8.2.0.jar:?]
at com.complexible.stardog.virtual.DefaultVirtualGraphRegistry.addDataSource(DefaultVirtualGraphRegistry.java:812) ~[stardog-virtual-core-8.2.0.jar:?]
at com.complexible.stardog.virtual.SecuredVirtualGraphRegistry.addDataSource(SecuredVirtualGraphRegistry.java:490) ~[stardog-virtual-core-8.2.0.jar:?]
at com.complexible.stardog.protocols.http.server.virtual.admin.DataSourceHttpService.addDataSource(DataSourceHttpService.java:773) ~[stardog-virtual-protocols-http-server-8.2.0.jar:?]
at com.complexible.stardog.protocols.http.server.virtual.admin.DataSourceHttpService.addDataSource(DataSourceHttpService.java:261) ~[stardog-virtual-protocols-http-server-8.2.0.jar:?]
at com.stardog.http.server.undertow.jaxrs.ExtractRoutes.lambda$handleIt$5(ExtractRoutes.java:192) ~[stardog-protocols-http-server-8.2.0.jar:?]
at org.apache.shiro.subject.support.SubjectRunnable.doRun(SubjectRunnable.java:120) [shiro-core-1.10.0.jar:1.10.0]
at org.apache.shiro.subject.support.SubjectRunnable.run(SubjectRunnable.java:108) [shiro-core-1.10.0.jar:1.10.0]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) [?:?]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) [?:?]
at java.lang.Thread.run(Thread.java:829) [?:?]

What am I missing?

Did you copy the driver to $STARDOG_EXT or server/dbms?

I have $STARDOG_EXT=C:\Users\ruo2rt\stardog-latest\ext

in that folder I have
mongodb-driver-sync-4.9.0.jar <-- the mongoclient class is here
bson-4.9.0.jar <-- this one contains the missing class from what I see
ojdbc8.jar <-- this one does not matter, for it is for oracle dbs

This is probably because Stardog is written against the 3.x driver (we specifically test against 3.8.2). Can you try using that driver?

https://repo1.maven.org/maven2/org/mongodb/mongodb-driver/3.8.2/mongodb-driver-3.8.2.jar

-Paul

Hey Paul,
Thanks for your suggestion. I just now downloaded that jar, placed it in the ext folder (which I am certain is working since the Oracle connections are working fine), and re-started the server.

On attempt to create the data connection with Mongodb, same error log showing:

WARN 2023-03-17T08:14:44,172+0100 [stardog-user-4] com.complexible.stardog.protocols.http.server.StardogUndertowErrorHandler:accept(68): Unexpected exception was handled by the server
java.lang.ClassNotFoundException: org.bson.conversions.Bson
at jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:581) ~[?:?]
at jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178) ~[?:?]
at java.lang.ClassLoader.loadClass(ClassLoader.java:522) ~[?:?]
at com.complexible.stardog.virtual.vega.mongodb.MongoDbDataSource$MongoDbDataSourceFactory.create(MongoDbDataSource.java:308) ~[stardog-virtual-core-8.2.0.jar:?]
at com.complexible.stardog.virtual.vega.mongodb.MongoDbDataSource$MongoDbDataSourceFactory.create(MongoDbDataSource.java:263) ~[stardog-virtual-core-8.2.0.jar:?]
at com.complexible.stardog.virtual.DefaultVirtualGraphRegistry.createDataSource(DefaultVirtualGraphRegistry.java:886) ~[stardog-virtual-core-8.2.0.jar:?]
at com.complexible.stardog.virtual.DefaultVirtualGraphRegistry.addDataSourceWithoutClosingPrior(DefaultVirtualGraphRegistry.java:864) ~[stardog-virtual-core-8.2.0.jar:?]
at com.complexible.stardog.virtual.DefaultVirtualGraphRegistry.addDataSource(DefaultVirtualGraphRegistry.java:812) ~[stardog-virtual-core-8.2.0.jar:?]
at com.complexible.stardog.virtual.SecuredVirtualGraphRegistry.addDataSource(SecuredVirtualGraphRegistry.java:490) ~[stardog-virtual-core-8.2.0.jar:?]
at com.complexible.stardog.protocols.http.server.virtual.admin.DataSourceHttpService.addDataSource(DataSourceHttpService.java:773) ~[stardog-virtual-protocols-http-server-8.2.0.jar:?]
at com.complexible.stardog.protocols.http.server.virtual.admin.DataSourceHttpService.addDataSource(DataSourceHttpService.java:261) ~[stardog-virtual-protocols-http-server-8.2.0.jar:?]
at com.stardog.http.server.undertow.jaxrs.ExtractRoutes.lambda$handleIt$5(ExtractRoutes.java:192) ~[stardog-protocols-http-server-8.2.0.jar:?]
at org.apache.shiro.subject.support.SubjectRunnable.doRun(SubjectRunnable.java:120) [shiro-core-1.10.0.jar:1.10.0]
at org.apache.shiro.subject.support.SubjectRunnable.run(SubjectRunnable.java:108) [shiro-core-1.10.0.jar:1.10.0]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) [?:?]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) [?:?]
at java.lang.Thread.run(Thread.java:829) [?:?]

You for sure downloaded mongo-java-driver-3.8.2.jar and removed all the old jars? You mentioned that you also had bson-4.9.0.jar. You removed both mongodb-driver-sync-4.9.0.jar and bson-4.9.0.jar (and then restarted the Stardog server)? I just triple checked and all the dependencies (that we don't already ship with Stardog) are included in the mongo-java-driver-3.8.2.jar file.

-Paul