使用 JNDI 数据源连接到 MongoDB
在此页面上
Overview
在本指南中,您可以了解如何使用 Java 命名和目录接口 (JNDI) 数据源将 MongoDB Java 驱动程序连接到 MongoDB 实例。
MongoClientFactory 包括一个 JNDIObjectFactory
实施,该实现根据MongoClient
连接 URI 返回 实例。请参阅以下指南,学习;了解如何配置应用程序以使用 JNDI 数据源进行连接。
In a Wildfly 安装后,请在 为 MongoDB 创建一个新模块。
modules/system/layers/base/org/mongodb/main
将以下 JAR 文件复制到模块中:mongodb-driver-sync-5.2.1.jar
mongodb-driver-core-5.2.1.jar
bson-5.2.1.jar
bson-record-codec-5.2.1.jar
将以下
module.xml
文件添加到模块中:module.xml<module xmlns="urn:jboss:module:1.9" name="org.mongodb"> <resources> <resource-root path="bson-5.2.1.jar"/> <resource-root path="bson-record-codec-5.2.1.jar"/> <resource-root path="mongodb-driver-core-5.2.1.jar"/> <resource-root path="mongodb-driver-sync-5.2.1.jar"/> </resources> <dependencies> <module name="javax.api"/> <module name="javax.transaction.api"/> <module name="javax.servlet.api" optional="true"/> </dependencies> </module> 将绑定添加到命名子系统配置,以引用上述模块、
MongoClientFactory
类以及 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> 注意
将
property
标签中的占位符连接值替换为点 MongoDB 安装的值。
这使得 MongoClient 实例可通过java:global
上下文中的 JNDI 名称MyMongoClient
发现。
将以下 JAR 文件复制到
lib
Tomcat 的 目录中 安装:mongodb-driver-sync-5.2.1.jar
mongodb-driver-core-5.2.1.jar
bson-5.2.1.jar
bson-record-codec-5.2.1.jar
context.xml
在应用程序的MongoClientFactory
文件中,添加引用 类和 stringMongoDB集群 连接 的资源:<Resource name="mongodb/MyMongoClient" auth="Container" type="com.mongodb.client.MongoClient" closeMethod="close" factory="com.mongodb.client.MongoClientFactory" singleton="true" connectionString="<connection string uri>"/> 注意
将
connectionString
属性中的占位符 URI 替换为指向MongoDB安装的值。在应用程序
web.xml
中,添加对上一步中定义的MongoClientFactory
资源的引用:<resource-ref> <res-ref-name> mongodb/MyMongoClient </res-ref-name> <res-type> com.mongodb.MongoClient </res-type> <res-auth> Container </res-auth> </resource-ref>
这样就可以在java:comp/env
上下文中通过 JNDI 名称mongodb/MyMongoClient
发现MongoClient
实例。