Overview
En esta guía, puedes aprender cómo conectar el driver Java de MongoDB a tu instancia de MongoDB utilizando un origen de datos de Java Naming and Directory Interface (JNDI).
MongoClientFactory incluye un JNDI
ObjectFactory implementación que devuelve MongoClient instancias en función de una URI de conexión. Consulte las siguientes guías para aprender a configurar su aplicación para conectarse mediante una fuente de datos JNDI.
En una instalación de Wildfly, crea un nuevo módulo para MongoDB en
modules/system/layers/base/org/mongodb/main. Copia los siguientes archivos jar en el módulo:mongodb-driver-sync-5.6.4.jarmongodb-driver-core-5.6.4.jarbson-5.6.4.jarbson-record-codec-5.6.4.jar
Agregue el siguiente archivo
module.xmlal módulo:module.xml<module xmlns="urn:jboss:module:1.9" name="org.mongodb"> <resources> <resource-root path="bson-5.6.4.jar"/> <resource-root path="bson-record-codec-5.6.4.jar"/> <resource-root path="mongodb-driver-core-5.6.4.jar"/> <resource-root path="mongodb-driver-sync-5.6.4.jar"/> </resources> <dependencies> <module name="javax.api"/> <module name="javax.transaction.api"/> <module name="javax.servlet.api" optional="true"/> </dependencies> </module> Agregue un enlace a la configuración del subsistema de nombres que haga referencia al módulo anterior,
MongoClientFactoryla clase y la cadena de conexión para el clúster MongoDB.<subsystem xmlns="urn:jboss:domain:naming:2.0"> <bindings> <object-factory name="java:global/MyMongoClient" module="org.mongodb" class="com.mongodb.client.MongoClientFactory"> <environment> <property name="connectionString" value="<connection string uri>"/> </environment> </object-factory> </bindings> <remote-naming/> </subsystem> Nota
Reemplace el valor de conexión del marcador de posición en la etiqueta
propertycon un valor que apunte a su instalación de MongoDB.
Esto hace que una instancia de MongoClient sea detectable a través del nombre JNDI MyMongoClient en el contexto java:global.
Copia los siguientes archivos jar en el directorio
libde tu instalación de Tomcat:mongodb-driver-sync-5.6.4.jarmongodb-driver-core-5.6.4.jarbson-5.6.4.jarbson-record-codec-5.6.4.jar
En el archivo
context.xmlde la aplicación, añada un recurso que haga referencia a la claseMongoClientFactoryy a la cadena de conexión del clúster de MongoDB:<Resource name="mongodb/MyMongoClient" auth="Container" type="com.mongodb.client.MongoClient" closeMethod="close" factory="com.mongodb.client.MongoClientFactory" singleton="true" connectionString="<connection string uri>"/> Nota
Reemplaza el URI de marcador de posición en el atributo
connectionStringcon un valor que apunte a tu instalación de MongoDB.En
web.xmlde la aplicación, añade una referencia al recursoMongoClientFactorydefinido en el paso anterior:<resource-ref> <res-ref-name> mongodb/MyMongoClient </res-ref-name> <res-type> com.mongodb.MongoClient </res-type> <res-auth> Container </res-auth> </resource-ref>
Esto hace que una instancia de MongoClient sea detectable a través del nombre JNDI mongodb/MyMongoClient en el contexto java:comp/env.
Tip
Para las implementaciones de JNDI distintas de las que se enumeran aquí, puedes crear tu propio Factory contenedor basado en la implementación integrada MongoClientFactory del driver.