使用JNDI数据源连接到MongoDB
本页内容
概述
在本指南中,您可以学习如何通过使用Java命名和目录接口(JNDI)数据源将MongoDB Java驱动程序连接到您的MongoDB实例。
MongoClientFactory 包含一个JNDI
ObjectFactory
实现,该实现根据一个连接URI 返回 MongoClient
实例。请参阅以下指南以了解如何配置您的应用程序以使用JNDI数据源进行连接。
在Wildfly 安装中,在
modules/system/layers/base/org/mongodb/main
创建一个新的MongoDB模块。将以下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集群的连接字符串。<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安装的值。
这将在java:global
上下文中通过JNDI名称MyMongoClient
发现MongoClient实例。
将以下jar文件复制到您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
类和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>"/> 注意
将
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
实例。