首页 > 解决方案 > 使用 MongoDB 驱动程序保存时出现异常

问题描述

我的问题是关于执行以下代码时引发的异常:

    public boolean createUser(String name, String nickname, String password) {
    Hash h = new Hash();
    String hashedPass = h.hashPassword(password);
    MongoCollection users = Connection.connect().getCollection("users");
    RegisteredUser rUser = new RegisteredUser(name, hashedPass, nickname);
    users.save(rUser);
    return true;
}

崩溃发生在 users.save(rUser); 如下:

Exception in thread "main" java.lang.NoSuchMethodError: com.fasterxml.jackson.databind.introspect.AnnotatedMember.fixAccess()V
at org.jongo.marshall.jackson.JacksonObjectIdUpdater.mustGenerateObjectId(JacksonObjectIdUpdater.java:48)
at org.jongo.Insert.preparePojo(Insert.java:72)
at org.jongo.Insert.save(Insert.java:47)
at org.jongo.MongoCollection.save(MongoCollection.java:128)
at aud.io.mongo.MongoDatabase.createUser(MongoDatabase.java:40)
at rest.Test.main(Test.java:8)

我正在使用以下依赖项:

        <dependency>
        <groupId>org.jongo</groupId>
        <artifactId>jongo</artifactId>
        <version>1.3.0</version>
    </dependency>
    <dependency>
        <groupId>org.mongodb</groupId>
        <artifactId>mongo-java-driver</artifactId>
        <version>3.5.0</version>
    </dependency>

这是怎么回事?

我尝试了什么: - 通过 maven 重新导入 - 更改 mongoDB 版本(此代码适用于使用 3.5.0 的旧项目)

数据库在线并且工作正常。

我的猜测:不兼容的依赖版本

标签: javamongodbmavenintellij-idea

解决方案


使用 jongo 1.3.1 修复了此问题,请参阅https://github.com/bguerout/jongo/issues/319


推荐阅读