Не удается подключить MongoDb через JNDI в Tomcat, вызванное ClassCastException - PullRequest
0 голосов
/ 15 марта 2019

Я пытаюсь подключить 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

¿Любая помощь?Спасибо

...