使用MongoDB驱动程序保存时发生异常

时间:2018-12-18 23:55:15

标签: java mongodb maven intellij-idea

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

    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的旧项目中有效)

数据库已联机并且可以运行。

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

1 个答案:

答案 0 :(得分:1)

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