Я создаю mongodb, используя mongoDB Atlas. Кажется, все в порядке. Когда я запустил программу, сервер успешно подключился. Однако, когда я попытался вставить данные в коллекцию, он выдал ошибку «Команда завершилась ошибкой 8000 (AtlasError)». Я прочитал другой пост, в котором говорилось, что мне нужно использовать другое имя базы данных, но это все равно не сработало. Я очень новичок в этом, поэтому любая помощь будет высоко ценится. Вот мой код
public class DbController2<DBObject> {
MongoClientURI uri;
MongoClient mongoClient;
MongoDatabase database;
MongoCollection<Document> collection;
public DbController2() {
uri = new MongoClientURI(
"mongodb://dbEfish:PASSWORD@cluster0-shard-00-00-klemt.mongodb.net:27017,cluster0-shard-00-01-klemt.mongodb.net:27017,cluster0-shard-00-02-klemt.mongodb.net:27017/test?ssl=true&replicaSet=Cluster0-shard-0&authSource=admin&retryWrites=true");
mongoClient = new MongoClient(uri);
database = mongoClient.getDatabase("eFishDB");
collection = database.getCollection("controlVar");
}
public Document toDBObject(String key, String[] dataPoints) {
return new Document("_id", key)
.append("Water Level", dataPoints[0])
.append("Water Temperature", dataPoints[1])
.append("pH Level", dataPoints[2])
.append("Nitrate Level", dataPoints[3])
.append("Oxygen Level", dataPoints[4])
.append("Ammonia Level", dataPoints[5])
.append("Light Intensity", dataPoints[6])
.append("Air Temperature", dataPoints[7]);
}
public void insert(String key, String[] dataPoints) {
//((DBCollection) collection).insert((com.mongodb.DBObject[]) this.toDBObject(key, dataPoints));
collection.insertOne(this.toDBObject(key, dataPoints));
}
}
Вот журнал ошибок:
ИНФОРМАЦИЯ: Закрытое соединение [connectionId {localValue: 4}] к cluster0-shard-00-00-klemt.mongodb.net:27017, поскольку при этом соединении возникла исключительная ситуация сокета.
Исключение в потоке "AWT-EventQueue-0" com.mongodb.MongoSecurityException: Исключение, проверяющее подлинность MongoCredential {механизм = SCRAM-SHA-1, userName = 'dbEfish', источник = 'admin', пароль =, механизмProperties = {}}
в com.mongodb.internal.connection.SaslAuthenticator.wrapException (SaslAuthenticator.java:173)
на com.mongodb.internal.connection.SaslAuthenticator.access $ 300 (SaslAuthenticator.java:40)
на com.mongodb.internal.connection.SaslAuthenticator $ 1.run (SaslAuthenticator.java:70)
на com.mongodb.internal.connection.SaslAuthenticator $ 1.run (SaslAuthenticator.java:47)
на com.mongodb.internal.connection.SaslAuthenticator.doAsSubject (SaslAuthenticator.java:179)
на com.mongodb.internal.connection.SaslAuthenticator.authenticate (SaslAuthenticator.java:47)
в com.mongodb.internal.connection.InternalStreamConnectionInitializer.authenticateAll (InternalStreamConnectionInitializer.java:152)
в com.mongodb.internal.connection.InternalStreamConnectionInitializer.initialize (InternalStreamConnectionInitializer.java:63)
в com.mongodb.internal.connection.InternalStreamConnection.open (InternalStreamConnection.java:129)
в com.mongodb.internal.connection.UsageTrackingInternalConnection.open (UsageTrackingInternalConnection.java:50)
в com.mongodb.internal.connection.DefaultConnectionPool $ PooledConnection.open (DefaultConnectionPool.java:398)
в com.mongodb.internal.connection.DefaultConnectionPool.get (DefaultConnectionPool.java:115)
в com.mongodb.internal.connection.DefaultConnectionPool.get (DefaultConnectionPool.java:101)
на com.mongodb.internal.connection.DefaultServer.getConnection (DefaultServer.java:85)
в com.mongodb.binding.ClusterBinding $ ClusterBindingConnectionSource.getConnection (ClusterBinding.java:124)
в com.mongodb.client.internal.ClientSessionBinding $ SessionBindingConnectionSource.getConnection (ClientSessionBinding.java:136)
в com.mongodb.operation.OperationHelper.withReleasableConnection (OperationHelper.java:424)
в com.mongodb.operation.MixedBulkWriteOperation.execute (MixedBulkWriteOperation.java:194)
в com.mongodb.operation.MixedBulkWriteOperation.execute (MixedBulkWriteOperation.java:69)
в com.mongodb.client.internal.MongoClientDelegate $ DelegateOperationExecutor.execute (MongoClientDelegate.java:198)
в com.mongodb.client.internal.MongoCollectionImpl.executeSingleWriteRequest (MongoCollectionImpl.java:961)
в com.mongodb.client.internal.MongoCollectionImpl.executeInsertOne (MongoCollectionImpl.java:495)
в com.mongodb.client.internal.MongoCollectionImpl.insertOne (MongoCollectionImpl.java:479)
в com.mongodb.client.internal.MongoCollectionImpl.insertOne (MongoCollectionImpl.java:473)
в DbController2.insert (DbController2.java:37)
на EFishGreen $ 4.actionPerformed (EFishGreen.java:131)
в javax.swing.AbstractButton.fireActionPerformed (Неизвестный источник)
at javax.swing.AbstractButton $ Handler.actionPerformed (Неизвестный источник)
в javax.swing.DefaultButtonModel.fireActionPerformed (Неизвестный источник)
at javax.swing.DefaultButtonModel.setPressed (неизвестный источник)
на javax.swing.plaf.basic.BasicButtonListener.mouseReleased (неизвестный источник)
в java.awt.Component.processMouseEvent (Неизвестный источник)в javax.swing.JComponent.processMouseEvent (Неизвестный источник)
в java.awt.Component.processEvent (Неизвестный источник)
в java.awt.Container.processEvent (Неизвестный источник)
at java.awt.Component.dispatchEventImpl (неизвестный источник)
в java.awt.Container.dispatchEventImpl (Неизвестный источник)
в java.awt.Component.dispatchEvent (Неизвестный источник)
в java.awt.LightweightDispatcher.retargetMouseEvent (Неизвестный источник)
at java.awt.LightweightDispatcher.processMouseEvent (неизвестный источник)
в java.awt.LightweightDispatcher.dispatchEvent (Неизвестный источник)
в java.awt.Container.dispatchEventImpl (Неизвестный источник)
в java.awt.Window.dispatchEventImpl (неизвестный источник)
в java.awt.Component.dispatchEvent (Неизвестный источник)
в java.awt.EventQueue.dispatchEventImpl (Неизвестный источник)
на java.awt.EventQueue.access $ 500 (неизвестный источник)
at java.awt.EventQueue $ 3.run (неизвестный источник)
at java.awt.EventQueue $ 3.run (неизвестный источник)
at java.security.AccessController.doPrivileged (собственный метод)
at java.security.ProtectionDomain $ JavaSecurityAccessImpl.doIntersectionPrivilege (неизвестный источник)
at java.security.ProtectionDomain $ JavaSecurityAccessImpl.doIntersectionPrivilege (неизвестный источник)
at java.awt.EventQueue $ 4.run (неизвестный источник)
at java.awt.EventQueue $ 4.run (неизвестный источник)
at java.security.AccessController.doPrivileged (собственный метод)
at java.security.ProtectionDomain $ JavaSecurityAccessImpl.doIntersectionPrivilege (неизвестный источник)
в java.awt.EventQueue.dispatchEvent (Неизвестный источник)
в java.awt.EventDispatchThread.pumpOneEventForFilters (Неизвестный источник)
в java.awt.EventDispatchThread.pumpEventsForFilter (Неизвестный источник)
в java.awt.EventDispatchThread.pumpEventsForHierarchy (Неизвестный источник)
в java.awt.EventDispatchThread.pumpEvents (Неизвестный источник)
в java.awt.EventDispatchThread.pumpEvents (Неизвестный источник)
at java.awt.EventDispatchThread.run (неизвестный источник)
Вызвано: com.mongodb.MongoCommandException: команда завершилась с ошибкой 8000 (AtlasError): «неудачная аутентификация аутентификации не удалась». на сервере cluster0-shard-00-00-klemt.mongodb.net:27017. Полный ответ: {"ok": 0, "errmsg": "bad auth Проверка подлинности завершилась неудачно.", "Code": 8000, "codeName": "AtlasError"}
в com.mongodb.internal.connection.ProtocolHelper.getCommandFailureException (ProtocolHelper.java:187)
в com.mongodb.internal.connection.InternalStreamConnection.receiveCommandMessageResponse (InternalStreamConnection.java:303)
в com.mongodb.internal.connection.InternalStreamConnection.sendAndReceive (InternalStreamConnection.java:259)
в com.mongodb.internal.connection.CommandHelper.sendAndReceive (CommandHelper.java:83)
в com.mongodb.internal.connection.CommandHelper.executeCommand (CommandHelper.java:33)
в com.mongodb.internal.connection.SaslAuthenticator.sendSaslContinue (SaslAuthenticator.java:134)
на com.mongodb.internal.connection.SaslAuthenticator.access $ 200 (SaslAuthenticator.java:40)
на com.mongodb.internal.connection.SaslAuthenticator $ 1.run (SaslAuthenticator.java:67)
... еще 59