异步 mongodb 客户端 vert.x 出错

error on async mongodb client vert.x

我使用此代码连接到本地主机 mongodb 数据库。 连接后,当我想检索数据时出现此异常。

SEVERE: com.mongodb.internal.async.ErrorHandlingResultCallback.errorHandlingCallback(Lcom/mongodb/async/SingleResultCallback;)Lcom/mongodb/async/SingleResultCallback;
java.lang.NoSuchMethodError: com.mongodb.internal.async.ErrorHandlingResultCallback.errorHandlingCallback(Lcom/mongodb/async/SingleResultCallback;)Lcom/mongodb/async/SingleResultCallback;
    at com.mongodb.async.client.MongoClientImpl.execute(MongoClientImpl.java:100)
    at com.mongodb.async.client.OperationIterable.batchCursor(OperationIterable.java:132)
    at com.mongodb.async.client.OperationIterable.into(OperationIterable.java:64)
    at com.mongodb.async.client.FindIterableImpl.into(FindIterableImpl.java:162)
    at io.vertx.ext.mongo.impl.MongoClientImpl.findWithOptions(MongoClientImpl.java:235)
    at io.vertx.ext.mongo.impl.MongoClientImpl.find(MongoClientImpl.java:217)
    at verticle.ServerVerticle.start(ServerVerticle.java:53)
    at io.vertx.core.impl.DeploymentManager.lambda$doDeploy(DeploymentManager.java:434)
    at io.vertx.core.impl.ContextImpl.lambda$wrapTask(ContextImpl.java:316)
    at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:163)
    at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:418)
    at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:440)
    at io.netty.util.concurrent.SingleThreadEventExecutor.run(SingleThreadEventExecutor.java:873)
    at java.lang.Thread.run(Thread.java:745)

我的代码:

MongoClient mongoClient = MongoClient.createShared(vertx, config().getJsonObject("mongodb"));
        mongoClient.find("user",new JsonObject(),res->{
            if (res.succeeded()){
                List<JsonObject> jsonObjects=res.result();
                String name="ali";
                LOGGER.warn(jsonObjects.toString());
            }
            else{
                String name="name";
            }

        });

Mongodb 下面的配置包含 db_name 、端口、主机和我需要连接到数据库的更多选项。这些选项对 mongodb 同步客户端(我使用之前)。

"mongodb": {
    "host" : "127.0.0.1",
    "port" : 27017,
    "db_name":"amibackend",
    "maxPoolSize" : 50,
    "minPoolSize" : 25,
    "maxIdleTimeMS" : 300000,
    "maxLifeTimeMS" : 3600000,
    "waitQueueMultiple"  : 10,
    "waitQueueTimeoutMS" : 10000,
    "maintenanceFrequencyMS" : 2000,
    "maintenanceInitialDelayMS" : 500
  }

============================================= ===
这个项目的依赖:(Vert.x)

<dependency>
    <groupId>io.vertx</groupId>
    <artifactId>vertx-core</artifactId>
    <version>3.3.3</version>
</dependency>

<dependency>
    <groupId>io.vertx</groupId>
    <artifactId>vertx-web</artifactId>
    <version>3.3.3</version>
</dependency>


<dependency>
    <groupId>io.vertx</groupId>
    <artifactId>vertx-mongo-client</artifactId>
    <version>3.3.3</version>
</dependency>

我认为您的 mongodb 驱动程序版本有问题。 我建议您升级 mongodb 驱动程序。

current version of ErrorHandlingResultCallback.java

history version of ErrorHandlingResultCallback.java