我正在尝试使用以下代码通过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”。为什么我会收到上述异常。
答案 0 :(得分:0)
使用一个类加载器加载该类时,将获得ClassCastExceptions,然后尝试将其强制转换为由另一个类加载器加载的同一类。
这些类由JVM中的两个不同的Class对象表示,并且强制转换将失败。
由于Mongo驱动程序由WildFly提供,请尝试不将其与您的应用程序(WAR)捆绑在一起-如果使用Maven,请将驱动程序标记为提供的。