Я пытаюсь подключить MongoDB (3.4.7) через JNDI в Tomcat (8), используя mongo-java-драйвер в соответствии с http://mongodb.github.io/mongo-java-driver/3.5/driver/tutorials/jndi/ Моя конфигурация tomcat:
- In context.xml
<Resource name="mongodb/MyMongoClient"
auth="Container"
type="com.mongodb.MongoClient"
closeMethod="close"
factory="com.mongodb.client.jndi.MongoClientFactory"
singleton="true" connectionString="mongodb://localhost[correctUriToMongo]" />
- In web.xml
<resource-ref>
<res-ref-name>
mongodb/MyMongoClient
</res-ref-name>
<res-type>
com.mongodb.MongoClient
</res-type>
<res-auth>
Container
</res-auth>
</resource-ref>
- mongo-java-driver-3.5.0.jar added in TOMCAT_HOME/lib
Когда япопробуйте создать экземпляр MongoClient через имя JNDI mongodb / MyMongoClient в контексте java: comp / env в качестве одной из этих опций
1. MongoClient mongoClient() throws Exception {
Context initCtx = new InitialContext()
Context envCtx = (Context) initCtx.lookup("java:comp/env")
return (MongoClient) envCtx.lookup("mongodb/MyMongoClient")
}
2. @Resource(lookup="java:comp/env/mongodb/MyMongoClient")
MongoClient mongoClient
Я получаю исключение ClassCastException -> Exception: Cannot cast object 'Mongo {options= MongoClientOptions { ... }} 'с классом' com.mongodb.MongoClient 'до класса' com.mongodb.MongoClient '
У меня есть попытка ответаэтой проблемы Не удается подключить MongoDb через JNDI в java с этим кодом в моем файле pom.xml из моего приложения
<dependency>
<groupId>org.mongodb</groupId>
<artifactId>mongo-java-driver</artifactId>
<version>3.5.0</version>
<scope>provided</scope>
</dependency>
Но я получаю такое же ClassCastException, также у меня естьпопробуйте все разные версии mongo-java-драйвера от 3.4 до 3.9.1
¿Любая помощь?Спасибо