没有找到初始化MongoClient时出现的NoSuchMethodError错误。

huangapple 未分类评论41阅读模式
英文:

NoSuchMethodError when initializing the MongoClient

问题

我在我的pom.xml中引入了Morphia,使用了MongoMorphia的所示版本。我必须使用旧版本,因为我正在使用Java 8,而UUID转换器只能在这个版本的Morphia中工作:

<dependency>
    <groupId>org.mongodb</groupId>
    <artifactId>mongo-java-driver</artifactId>
    <version>3.12.5</version>
</dependency>
<dependency>
    <groupId>dev.morphia.morphia</groupId>
    <artifactId>core</artifactId>
    <version>1.6.0-RC1</version>
</dependency>

在运行时尝试创建数据存储时,以下 Java 代码行:

private static final Datastore datastore = morphia.createDatastore(new MongoClient(), "vulcandev");

会抛出 NoSuchMethodError 异常:

java.lang.NoSuchMethodError:
com.mongodb.client.internal.MongoClientDelegate.(Lcom/mongodb/internal/connection/Cluster;Lorg/bson/codecs/configuration/CodecRegistry;Ljava/lang/Object;Lcom/mongodb/client/internal/Crypt;)V

完整的堆栈跟踪如下:

[22:56:37 ERROR]: 在启用 VulcanCore v3.0-SNAPSHOT 时出错(是否为最新版本?) java.lang.NoSuchMethodError:
com.mongodb.client.internal.MongoClientDelegate.(Lcom/mongodb/internal/connection/Cluster;Lorg/bson/codecs/configuration/CodecRegistry;Ljava/lang/Object;Lcom/mongodb/client/internal/Crypt;)V at
com.mongodb.MongoClient.(MongoClient.java:346) ~[?:?]
at com.mongodb.MongoClient.(MongoClient.java:205) ~[?:?]
at com.mongodb.MongoClient.(MongoClient.java:194) ~[?:?]
at com.mongodb.MongoClient.(MongoClient.java:155) ~[?:?]
at vulcanprisons.iron.vulcancore.mongo.MongoManager.(MongoManager.java:13) ~[?:?]
at vulcanprisons.iron.vulcancore.players.PlayerDataManager.setup(PlayerDataManager.java:13) ~[?:?]
at vulcanprisons.iron.vulcancore.VulcanCore.setupManagers(VulcanCore.java:40) ~[?:?]
at vulcanprisons.iron.vulcancore.VulcanCore.onEnable(VulcanCore.java:33) ~[?:?]

英文:

I shade Morphia in my pom.xml, using the versions shown for Mongo and Morphia. I have to use an older version because I'm working with Java 8 and the UUID converter only works in this version of Morphia:

&lt;dependency&gt;
    &lt;groupId&gt;org.mongodb&lt;/groupId&gt;
    &lt;artifactId&gt;mongo-java-driver&lt;/artifactId&gt;
    &lt;version&gt;3.12.5&lt;/version&gt;
&lt;/dependency&gt;
&lt;dependency&gt;
    &lt;groupId&gt;dev.morphia.morphia&lt;/groupId&gt;
    &lt;artifactId&gt;core&lt;/artifactId&gt;
    &lt;version&gt;1.6.0-RC1&lt;/version&gt;
&lt;/dependency&gt;

When attempting to create the datastore at runtime, the following line of Java code:

private static final Datastore datastore = morphia.createDatastore(new MongoClient(), &quot;vulcandev&quot;);

Throws a NoSuchMethodError:
> java.lang.NoSuchMethodError:
> com.mongodb.client.internal.MongoClientDelegate.<init>(Lcom/mongodb/internal/connection/Cluster;Lorg/bson/codecs/configuration/CodecRegistry;Ljava/lang/Object;Lcom/mongodb/client/internal/Crypt;)V

With the full stack trace:

> [22:56:37 ERROR]: Error occurred while enabling VulcanCore
> v3.0-SNAPSHOT (Is it up to date?) java.lang.NoSuchMethodError:
>> com.mongodb.client.internal.MongoClientDelegate.<init>(Lcom/mongodb/internal/connection/Cluster;Lorg/bson/codecs/configuration/CodecRegistry;Ljava/lang/Object;Lcom/mongodb/client/internal/Crypt;)V at
>>> com.mongodb.MongoClient.<init>(MongoClient.java:346) ~[?:?]
>>> at com.mongodb.MongoClient.<init>(MongoClient.java:205) ~[?:?]
>>> at com.mongodb.MongoClient.<init>(MongoClient.java:194) ~[?:?]
>>> at com.mongodb.MongoClient.<init>(MongoClient.java:155) ~[?:?]
>>> at vulcanprisons.iron.vulcancore.mongo.MongoManager.<clinit>(MongoManager.java:13) ~[?:?]
>>> at vulcanprisons.iron.vulcancore.players.PlayerDataManager.setup(PlayerDataManager.java:13) ~[?:?]
>>> at vulcanprisons.iron.vulcancore.VulcanCore.setupManagers(VulcanCore.java:40) ~[?:?]
>>> at vulcanprisons.iron.vulcancore.VulcanCore.onEnable(VulcanCore.java:33) ~[?:?]

huangapple
  • 本文由 发表于 2020年7月25日 12:42:33
  • 转载请务必保留本文链接:https://java.coder-hub.com/63084426.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定