使用 MongoDB 的應用程式可以針對 Liberty 執行。如果要存取 MongoDB 實例,應用程式會使用您配置給伺服器的 MongoDB Java™ 驅動程式和資料來源。
開始之前
註: Liberty 提供了 MongoDB 的配置支援。MongoDB(來自 "humongous")是一個可調式高效能開放程式碼的 NoSQL 資料庫。
只支援 MongoDB Java 驅動程式版本 2.10.0 到 2.12.5。
關於這項作業
如果要使應用程式能夠使用 MongoDB,請在 Liberty 的 server.xml 檔中配置 MongoDB Java 驅動程式的共用程式庫,以及指向這個共用程式庫的程式庫參照。應用程式可以直接從應用程式或透過 server.xml 檔中的 mongodb-2.0 特性及 mongoDB 實例配置,來存取 MongoDB。
程序
- 將 MongoDB Java 驅動程式安裝在應用程式和 Liberty 執行時期能夠存取的位置。
例如,將 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 特性。
如果您使用資源注入,就不需要。
- 配置一個 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 {
// 或者,也可以使用 InitialContext 查閱
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。