Conecte-se ao MongoDB usando uma fonte de dados JNDI
Nesta página
Visão geral
Neste guia, você pode aprender como conectar o driver Java do MongoDB à sua instância do MongoDB usando uma fonte de dados Java Naming and Directory Interface (JNDI).
A MongoClientFactory inclui uma ObjectFactory
implementação JNDI que retorna MongoClient
instâncias com base em um URI de conexão. Consulte os seguintes guias para saber como configurar seu aplicação para se conectar usando uma fonte de dados JNDI.
Em um wildfly instalação, crie um novo módulo para MongoDB em
modules/system/layers/base/org/mongodb/main
. Copie os seguintes arquivos JAR para o módulo:mongodb-driver-sync-4.7.2.jar
mongodb-driver-core-4.7.2.jar
bson-4.7.2.jar
bson-record-codec-4.7.2.jar
Adicione o seguinte arquivo
module.xml
no módulo:<module xmlns="urn:jboss:module:1.3" name="org.mongodb"> <resources> <resource-root path="mongodb-driver-sync-4.1.0.jar"/> </resources> <dependencies> <module name="javax.api"/> <module name="javax.transaction.api"/> <module name="javax.servlet.api" optional="true"/> </dependencies> </module> Adicione uma ligação à configuração do subsistema de nomenclatura que referencia o módulo anterior, a classe
MongoClientFactory
e a string de conexão para o MongoDB cluster.<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> Observação
Substitua o valor da conexão do espaço reservado na tag
property
por um ponto que ponto para a instalação do MongoDB.
Isso torna uma instância MongoClient acessível por meio do nome JNDI MyMongoClient
no contexto java:global
.
Copie os seguintes arquivos
lib
JAR para o diretório do seu Tomcat instalação:mongodb-driver-sync-4.7.2.jar
mongodb-driver-core-4.7.2.jar
bson-4.7.2.jar
bson-record-codec-4.7.2.jar
No arquivo
context.xml
do seu aplicação, adicione um recurso que faça referência à classeMongoClientFactory
e à string de conexão para o cluster 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>"/> Observação
Substitua o URI do espaço reservado no atributo
connectionString
por um valor que aponte para sua instalação do MongoDB .Em
web.xml
do seu aplicativo, adicione uma referência ao recursoMongoClientFactory
definido na etapa 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>
Isto torna uma instância MongoClient
acessível através do nome JNDI mongodb/MyMongoClient
no contexto do java:comp/env
.
Dica
Veja também:
Para implementações JNDI diferentes das listadas aqui, você pode criar seu próprio Factory
wrapper com base na MongoClientFactory integrada do driver implementação.