So, I'm making this java program to try out some basic mongodb stuff.
package sample;
import com.mongodb.DBObject;
import com.mongodb.Cursor;
import com.mongodb.DB;
import com.mongodb.DBCollection;
import com.mongodb.MongoClient;
public class Main {
public static void main(String[] args) {
MongoClient mongoClient = new MongoClient("localhost", 27017);
DB db = mongoClient.getDB("Species");
DBCollection col = db.getCollection("asdfg");
System.out.println("connexion made");
Cursor cursor=col.find();
System.out.println(cursor.next());
}
}
In the collection I have already added few JSON doc entries (around 7 of them) There is no problem with the data entries for sure (ignore the typo for connexion in print statement, i did that for fun)
Ok, so the code works fine till Cursor cursor=col.find();
but shows a ton of errors when i include this line in the code
System.out.println(cursor.next());
here is the error which i get for the code
"C:\Program Files\Java\jdk1.8.0_111\bin\java.exe" "-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2019.2.3\lib\idea_rt.jar=53479:C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2019.2.3\bin" -Dfile.encoding=UTF-8 -classpath "C:\Program Files\Java\jdk1.8.0_111\jre\lib\charsets.jar;C:\Program Files\Java\jdk1.8.0_111\jre\lib\deploy.jar;C:\Program Files\Java\jdk1.8.0_111\jre\lib\ext\access-bridge-64.jar;C:\Program Files\Java\jdk1.8.0_111\jre\lib\ext\cldrdata.jar;C:\Program Files\Java\jdk1.8.0_111\jre\lib\ext\dnsns.jar;C:\Program Files\Java\jdk1.8.0_111\jre\lib\ext\jaccess.jar;C:\Program Files\Java\jdk1.8.0_111\jre\lib\ext\jfxrt.jar;C:\Program Files\Java\jdk1.8.0_111\jre\lib\ext\localedata.jar;C:\Program Files\Java\jdk1.8.0_111\jre\lib\ext\nashorn.jar;C:\Program Files\Java\jdk1.8.0_111\jre\lib\ext\sunec.jar;C:\Program Files\Java\jdk1.8.0_111\jre\lib\ext\sunjce_provider.jar;C:\Program Files\Java\jdk1.8.0_111\jre\lib\ext\sunmscapi.jar;C:\Program Files\Java\jdk1.8.0_111\jre\lib\ext\sunpkcs11.jar;C:\Program Files\Java\jdk1.8.0_111\jre\lib\ext\zipfs.jar;C:\Program Files\Java\jdk1.8.0_111\jre\lib\javaws.jar;C:\Program Files\Java\jdk1.8.0_111\jre\lib\jce.jar;C:\Program Files\Java\jdk1.8.0_111\jre\lib\jfr.jar;C:\Program Files\Java\jdk1.8.0_111\jre\lib\jfxswt.jar;C:\Program Files\Java\jdk1.8.0_111\jre\lib\jsse.jar;C:\Program Files\Java\jdk1.8.0_111\jre\lib\management-agent.jar;C:\Program Files\Java\jdk1.8.0_111\jre\lib\plugin.jar;C:\Program Files\Java\jdk1.8.0_111\jre\lib\resources.jar;C:\Program Files\Java\jdk1.8.0_111\jre\lib\rt.jar;C:\Users\mysti\Documents\untitled\out\production\untitled;C:\Users\mysti\Documents\mongo-java-driver-3.3.0-query-log-max-size.jar" sample.Main
Oct 27, 2019 9:11:54 PM com.mongodb.diagnostics.logging.JULLogger log
INFO: Cluster created with settings {hosts=[localhost:27017], mode=SINGLE, requiredClusterType=UNKNOWN, serverSelectionTimeout='30000 ms', maxWaitQueueSize=500}
connexion made
Oct 27, 2019 9:11:54 PM com.mongodb.diagnostics.logging.JULLogger log
INFO: No server chosen by ReadPreferenceServerSelector{readPreference=primary} from cluster description ClusterDescription{type=UNKNOWN, connectionMode=SINGLE, serverDescriptions=[ServerDescription{address=localhost:27017, type=UNKNOWN, state=CONNECTING}]}. Waiting for 30000 ms before timing out
Oct 27, 2019 9:11:54 PM com.mongodb.diagnostics.logging.JULLogger log
INFO: Opened connection [connectionId{localValue:1, serverValue:1951}] to localhost:27017
Oct 27, 2019 9:11:54 PM com.mongodb.diagnostics.logging.JULLogger log
INFO: Monitor thread successfully connected to server with description ServerDescription{address=localhost:27017, type=STANDALONE, state=CONNECTED, ok=true, version=ServerVersion{versionList=[4, 0, 11]}, minWireVersion=0, maxWireVersion=7, electionId=null, maxDocumentSize=16777216, roundTripTimeNanos=799200}
Oct 27, 2019 9:11:54 PM com.mongodb.diagnostics.logging.JULLogger log
INFO: Opened connection [connectionId{localValue:2, serverValue:1952}] to localhost:27017
Exception in thread "main" java.lang.NoClassDefFoundError: Could not initialize class com.mongodb.connection.MongoQueryAnalyzer
at com.mongodb.connection.DefaultServerConnection.command(DefaultServerConnection.java:222)
at com.mongodb.operation.CommandOperationHelper.executeWrappedCommandProtocol(CommandOperationHelper.java:216)
at com.mongodb.operation.CommandOperationHelper.executeWrappedCommandProtocol(CommandOperationHelper.java:207)
at com.mongodb.operation.CommandOperationHelper.executeWrappedCommandProtocol(CommandOperationHelper.java:113)
at com.mongodb.operation.FindOperation$1.call(FindOperation.java:488)
at com.mongodb.operation.FindOperation$1.call(FindOperation.java:483)
at com.mongodb.operation.OperationHelper.withConnectionSource(OperationHelper.java:245)
at com.mongodb.operation.OperationHelper.withConnection(OperationHelper.java:218)
at com.mongodb.operation.FindOperation.execute(FindOperation.java:483)
at com.mongodb.operation.FindOperation.execute(FindOperation.java:80)
at com.mongodb.Mongo.execute(Mongo.java:818)
at com.mongodb.Mongo$2.execute(Mongo.java:805)
at com.mongodb.DBCursor.initializeCursor(DBCursor.java:851)
at com.mongodb.DBCursor.hasNext(DBCursor.java:152)
at com.mongodb.DBCursor.next(DBCursor.java:172)
at com.mongodb.DBCursor.next(DBCursor.java:60)
at sample.Main.main(Main.java:16)
Process finished with exit code 1
the similar thing happened whenever I tried doing any sort of read operations I've done till now, while i could easily add data without any trouble. Please help me,Im newb.
To summarize everything written in the comments.
If you see such errors with classes, try to change newer version for dependency of mongodb java driver in maven/gradle project or manually add another external jar for it.
For Maven:
<dependencies>
<dependency>
<groupId>org.mongodb</groupId>
<artifactId>mongodb-driver-sync</artifactId>
<version>3.10.1</version>
</dependency>
</dependencies>
For Gradle:
dependencies {
compile 'org.mongodb:mongodb-driver-sync:3.10.1'
}
As an alternative, you can also download the mongodb-driver-sync jar from sonatype.
Detailed examples you can find in mongodb documentation for driver 3.10. Personally, I highly recommend you to use stable versions like 3.10.2, 3.8.2, 3.6.4.