使用 MongoDB 的应用程序可以在 Liberty 上运行。应用程序使用您为服务器配置的 MongoDB Java™ 驱动程序和数据源来访问 MongoDB 实例。
开始之前
注: Liberty 为 MongoDB 提供配置支持。MongoDB(有着“humongous”的含义,表示巨大、庞大)是可伸缩的高性能开放式源代码 NoSQL 数据库。
仅 MongoDB Java
驱动程序 V2.10.0 到 V2.12.5 受支持。
关于此任务
要使应用程序能使用 MongoDB,您为 MongoDB Java 驱动程序配置共享库,并且在 Liberty 的 server.xml 文件中配置对该共享库的库引用。应用程序可以直接从应用程序或通过 server.xml 文件中的 mongodb-2.0 功能部件和 mongoDB 实例配置来访问 MongoDB。
过程
- 在应用程序和 Liberty 运行时可以访问的位置安装 MongoDB Java 驱动程序。
例如,将 MongoDB 驱动程序 .jar 文件放入 Liberty_profile_root/usr/servers/server_name/lib 目录。
- 在 Liberty 服务器的 server.xml 文件中配置 MongoDB 驱动程序 .jar 文件的共享库。
<library id="MongoLib">
<file name="${server.config.dir}/lib/mongo.jar" />
</library>
- 使应用程序能够访问 MongoDB(从应用程序直接访问或者使用 mongodb-2.0 功能部件)。
- 启用从应用程序直接访问 MongoDB。
- 在 server.xml 文件的应用程序元素中配置共享库的库引用。
<application ...>
<classloader commonLibraryRef="MongoLib"/>
</application>
现在,应用程序可以直接访问 MongoDB API。如果您希望应用程序使用运行时注入引擎,请继续执行后续步骤。
- 在 server.xml 文件中配置 mongodb-2.0 功能部件、mongo 和 mongoDB 元素。
- 将 mongodb-2.0 功能部件添加到 server.xml 文件。
<featureManager>
<feature>mongodb-2.0</feature>
<feature>jndi-1.0</feature>
</featureManager>
仅当您使用 JNDI 来查找资源时,才需要 JNDI 功能部件。如果您使用资源注入,那么不需要 JNDI 功能部件。
- 配置一个具有对前一步骤所创建共享库的引用的 mongo 元素。
<mongo id="mongo" libraryRef="MongoLib" />
- 配置 MongoDB 元素。
<mongoDB jndiName="mongo/testdb" mongoRef="mongo" databaseName="db-test" />
配置 JNDI 名称将使应用程序或 Liberty 运行时能够查找 MongoDB 实例。
- 使应用程序能够访问 MongoDB。
以下示例说明了 JNDI 查找和资源注入:
public class TestServlet extends HttpServlet {
@Resource(name = "mongo/testdb")
protected DB db;
...
protected void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
// Alternatively use InitialContext lookup
DB lookup = (DB) new InitialContext().lookup("java:comp/env/mongo/testdb");
...
- 如果您正在使用 JNDI 查找功能,请将资源环境引用添加到应用程序的 web.xml 文件:
<resource-env-ref>
<resource-env-ref-name>mongo/testdb</resource-env-ref-name>
<resource-env-ref-type>com.mongodb.DB</resource-env-ref-type>
</resource-env-ref>
下一步做什么
测试从应用程序使用 MongoDB 的情况。
有关 MongoDB 元素的更多信息,请参阅 MongoDB Integration 2.0。