Liberty 中配置 MongoDB 連線功能

使用 MongoDB 的應用程式可以在 Liberty上執行。 若要存取 MongoDB 實例,應用程式會使用您為伺服器配置的 MongoDB Java™ 驅動程式及資料來源。

MongoDB(來自 humongous)是一個可調式高效能開放程式碼的 NoSQL 資料庫。

已穩定特性: mongodb-2.0 特性已穩定。 此特性支援的 MongoDB Java 驅動程式 2.10.0 版到 2.14.2 版不再運行。 為 Mongo 建立 CDI 生產者,而不是使用 mongodb-2.0 特性。 CDI 生產者可以使用符合您需求的任何 Mongo 版本。

開始之前

只支援 MongoDB Java 驅動程式版本 2.10.0 到 2.14.2。 對於 SSL,至少要 2.11.0,對於憑證鑑別,至少要 2.12.0。

關於這項作業

如果要讓應用程式能夠使用 MongoDB,您可以在 Libertyserver.xml 檔中配置 MongoDB Java 驅動程式的共用程式庫,以及指向共用程式庫的程式庫參照。 應用程式可以直接從應用程式或透過 server.xml 檔中的 mongodb-2.0 特性及 mongoDB 實例配置來存取 MongoDB 。

程序

  1. 將 MongoDB Java 驅動程式安裝在您應用程式及 Liberty 執行時期可以存取的位置。

    例如,將 MongoDB 驅動程式 .jar 檔放在 Liberty_profile_root/usr/servers/server_name/lib 目錄中。

  2. Liberty 伺服器的 server.xml 檔中配置 MongoDB 驅動程式 .jar 檔的共用程式庫。
    <library id="MongoLib">
       <file name="${server.config.dir}/lib/mongo.jar" />
    </library>
  3. 可讓您的應用程式從應用程式直接存取或使用 mongodb-2.0 特性來存取 MongoDB。
    • 直接從應用程式中存取 MongoDB。
      1. server.xml 檔內的應用程式元素中,配置共用程式庫的程式庫參照。
        <application ...>
           <classloader commonLibraryRef="MongoLib"/>
        </application>
        應用程式現在可以直接存取 MongoDB API。 如果您希望應用程式使用執行時期注入引擎,請繼續進行後續步驟。
    • server.xml 檔中配置 mongodb-2.0 特性、mongo 和 mongoDB 元素。
      1. 新增 mongodb-2.0 特性到 server.xml 檔中。
        <featureManager>
           <feature>mongodb-2.0</feature>
           <feature>jndi-1.0</feature>
        </featureManager>
        只有在利用 JNDI 來查閱資源時,才需要 JNDI 特性。 如果您使用資源注入,就不需要。
      2. 配置一個 mongo 元素來參照上一步驟所建立的共用程式庫。
        <mongo id="mongo" libraryRef="MongoLib" />
      3. 配置 mongoDB 元素。
        <mongoDB jndiName="mongo/testdb" mongoRef="mongo" databaseName="db-test" />

        配置 JNDI 名稱可讓應用程式或 Liberty 執行時期查閱 MongoDB 實例。

      4. 讓您的應用程式能夠存取 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");
        ...
      5. 如果使用 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 整合 2.0