Search code examples
javamongodbjacksonmongo-javamongo-java-driver

How to connect MongoDB via JNDI in java


Currently i am using the following code for connecting into MongoDB via java.

MongoClientURI uri = new MongoClientURI("mongodb://10.0.8.78:27017/mydb");          
MongoClient mongoClient = new MongoClient(uri);

I want to create MongoClient object using JNDI.Following is my jndi configuration in wildfly.

<subsystem xmlns="urn:jboss:domain:naming:2.0">
    <bindings>
        <object-factory name="java:global/MyMongoClient" module="org.mongodb" class="com.mongodb.client.jndi.MongoClientFactory">
            <environment>
                <property name="connectionString" value="mongodb://10.0.8.78:27017/mydb" />
            </environment>
        </object-factory>
    </bindings>
    <remote-naming />
</subsystem>

What is the code change needed for me to create MongoClient object for connecting into MongoDB via JNDI.


Solution

  • You can invoke mongodb client using this below code,

    @Resource(lookup = "java:global/LocalMongoClient")
    private MongoClient mongoClient;
    

    or

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