无法通过Java中的JNDI连接MongoDb

时间:2018-12-27 13:54:11

标签: java mongodb jackson mongo-java mongo-java-driver

我正在尝试使用以下代码通过Wildfly中的JNDI连接MongoDB。

Context ctx = new InitialContext();
MongoClient mongoClient = (MongoClient) ctx.lookup("java:global/MyMongoClient");

但是我收到以下错误。

 Exception->com.mongodb.MongoClient cannot be cast to com.mongodb.MongoClient

我在“ wildfly-10.1.0.Final/modules/system/layers/base/org/mongodb/main”目录和“ mongodb-driver-3.4”中使用mongo-java-driver-3.4.0.jar。 “ wildfly-10.1.0.Final/standalone/deployments/APPLICATION.war/WEB-INF/lib”中的“ 0.jar”。为什么我会收到上述异常。

1 个答案:

答案 0 :(得分:0)

使用一个类加载器加载该类时,将获得ClassCastExceptions,然后尝试将其强制转换为由另一个类加载器加载的同一类。

这些类由JVM中的两个不同的Class对象表示,并且强制转换将失败。

由于Mongo驱动程序由WildFly提供,请尝试将其与您的应用程序(WAR)捆绑在一起-如果使用Maven,请将驱动程序标记为提供的