【发布时间】:2016-03-11 00:36:50
【问题描述】:
我正在尝试连接 mLab,但出现此错误:
03-09 21:13:04.966 21557-21576/? E/AndroidRuntime: Caused by: java.lang.VerifyError: com/mongodb/DBPort$SaslAuthenticator
03-09 21:13:04.966 21557-21576/? E/AndroidRuntime: at com.mongodb.DBPort.authenticate(DBPort.java:387)
03-09 21:13:04.966 21557-21576/? E/AndroidRuntime: at com.mongodb.DBPort.checkAuth(DBPort.java:402)
03-09 21:13:04.966 21557-21576/? E/AndroidRuntime: at com.mongodb.DBTCPConnector.doOperation(DBTCPConnector.java:209)
03-09 21:13:04.966 21557-21576/? E/AndroidRuntime: at com.mongodb.DBCollectionImpl.sendWriteCommandMessage(DBCollectionImpl.java:508)
03-09 21:13:04.966 21557-21576/? E/AndroidRuntime: at com.mongodb.DBCollectionImpl.writeWithCommandProtocol(DBCollectionImpl.java:458)
03-09 21:13:04.966 21557-21576/? E/AndroidRuntime: at com.mongodb.DBCollectionImpl.insertWithCommandProtocol(DBCollectionImpl.java:418)
03-09 21:13:04.966 21557-21576/? E/AndroidRuntime: at com.mongodb.DBCollectionImpl.insert(DBCollectionImpl.java:188)
03-09 21:13:04.966 21557-21576/? E/AndroidRuntime: at com.mongodb.DBCollectionImpl.insert(DBCollectionImpl.java:167)
03-09 21:13:04.966 21557-21576/? E/AndroidRuntime: at com.mongodb.DBCollection.insert(DBCollection.java:93)
03-09 21:13:04.966 21557-21576/? E/AndroidRuntime: at com.mongodb.DBCollection.insert(DBCollection.java:78)
03-09 21:13:04.966 21557-21576/? E/AndroidRuntime: at com.mongodb.DBCollection.insert(DBCollection.java:120)
03-09 21:13:04.966 21557-21576/? E/AndroidRuntime: at com.example.irakl_000.maps.server_pcg.ServerRequest$StorePostAsyncTask.doInBackground(ServerRequest.java:161)
03-09 21:13:04.966 21557-21576/? E/AndroidRuntime: at com.example.irakl_000.maps.server_pcg.ServerRequest$StorePostAsyncTask.doInBackground(ServerRequest.java:71)
03-09 21:13:04.966 21557-21576/? E/AndroidRuntime: at android.os.AsyncTask$2.call(AsyncTask.java:288)
03-09 21:13:04.966 21557-21576/? E/AndroidRuntime: at java.util.concurrent.FutureTask.run(FutureTask.java:237)
03-09 21:13:04.966 21557-21576/? E/AndroidRuntime: at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)
03-09 21:13:04.966 21557-21576/? E/AndroidRuntime: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
03-09 21:13:04.966 21557-21576/? E/AndroidRuntime: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
03-09 21:13:04.966 21557-21576/? E/AndroidRuntime: at java.lang.Thread.run(Thread.java:841)
我按照 mLab 的说明进行操作,但出了点问题。我这是我的代码:
final BasicDBObject[] seedData = createSeedData();
MongoClientURI uri = new MongoClientURI("mongodb://<user>:<<password>@ds041861.mlab.com:port/db");
MongoClient client = new MongoClient(uri);
DB db = client.getDB(uri.getDatabase());
DBCollection songs = db.getCollection("texts");
songs.insert(seedData);// HERE IS THE ERROR
我正在使用 mongo-java-driver-2.13.0-rc0.jar 驱动程序。
【问题讨论】:
-
您向我们展示了这张图片,所以这并不是一个秘密,您是否真的在真实代码中使用
mongodb://<user>:<<password>@ds041861.mlab.com:41861/posts作为连接字符串?另外请告诉我,您实际上还用您的实际用户和密码凭据替换了<user>和<password>值。 -
xaxa hello blakes,是的,我确实用正确的值替换了值:)。你认为问题在于我使用 java 驱动程序
-
您是否验证了您能够使用
mongoshell 以及您在 Java 应用程序中使用的相同凭据成功连接到您的 mLab 数据库?
标签: java mongodb android-studio mlab