簡體   English   中英

將MongoDB服務器屬性放置在context.xml中

[英]Placing MongoDB server properties in context.xml

在帶有后端ORACLE/MYSQL Tomcat托管的JAVA Web項目中,我們可以添加如下所示的<Resource> (考慮連接Oracle Server)

<?xml version="1.0" encoding="UTF-8"?>
<Context antiJARLocking="true" path="/myProject">

  <Resource auth="Container" driverClassName="oracle.jdbc.driver.OracleDriver" 
  factory="oracle.jdbc.pool.OracleDataSourceFactory" 
  maxActive="20" maxIdle="10" 
  maxWait="-1" name="jdbc/TestDB" password="dbPAss" type="oracle.jdbc.pool.OracleDataSource" 
  url="jdbc:oracle:thin:@DBHOST:PORT:SERVICENAME" 
  user="dbUser"/>

  <Loader delegate="true"/>
</Context>

context.xml的項目,只有改變一些東西,如果它連接MySQL ,並且可以在使用JAVA SERVLET使用

Context initContext = new InitialContext();
Context envContext  = (Context)initContext.lookup("java:/comp/env");
DataSource ds = (DataSource)envContext.lookup("jdbc/TestDB");

然后創建其Connection對象

將其用於MongoDB的正確語法應該是什么?

我打算為MongoDB服務器存儲主機,端口,用戶名和密碼。

Tomcat僅在使用<Resource>元素時支持JDBC數據源(嗯,它支持SMTP會話等其他功能,但是對於數據庫,它們必須基於JDBC)。 當前沒有用於MongoDB的JDBC驅動程序(因為它不是關系數據庫,並且JDBC API對此沒有任何意義)(除非您想嘗試一下: https//github.com/erh/mongo-jdbc ),因此您必須為其管理自己的資源池。

實際上,MongoDB有一個JDBC驅動程序。 一個剛剛由一家名為UnityJDBC的公司發布。 您可以從以下位置免費下載程序和驅動程序...

http://www.unityjdbc.com/mongojdbc/mongo_jdbc.php

實際上,Tomcat(或更確切地說是JNDI)確實支持任意資源( config.xml <Resource>元素),包括MongoDB的連接信息,而無需費心MongoDB(或任何其他非RDBMS)使用JDBC。 所需javax.naming就是實現javax.naming API的定義您的自定義資源的屬性(請參閱Tomcat JNDI HOW-TO參考中的“ 添加自定義資源工廠 ”)。

我最近發現了這個GitHub項目該項目旨在在使用正式的MongoDB Java客戶端時將MongoDB數據源連接信息存儲為JNDI資源。

如果您使用的是Spring,則此其他答案將在使用Spring時通過JNDI資源提供有關MongoDB數據源配置的信息(並且該代碼也可以用作為MongoDB或您創建的任何其他配置屬性創建自己的自定義JNDI資源加載器的指南。用於存儲在Tomcat context.xml )。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM