将MongoDB服务器属性放在context.xml中

时间:2012-07-12 11:02:53

标签: java mongodb tomcat

JAVA托管的Tomcat网络项目中,后端为ORACLE/MYSQL我们可以在下面添加<Resource>(考虑连接Oracle服务器)< / p>

<?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服务器存储HOST,PORT,USERNAME和PASSWORD。

3 个答案:

答案 0 :(得分:1)

Tomcat仅在使用<Resource>元素时支持JDBC DataSource(嗯,它支持其他内容,如SMTP会话等,但对于数据库,它们必须基于JDBC)。 MongoDB目前没有JDBC驱动程序(因为它不是关系数据库,并且JDBC API对它没有意义)(除非你想尝试这个东西:https://github.com/erh/mongo-jdbc),所以你必须管理你的拥有自己的资源池。

答案 1 :(得分:1)

实际上有一个MongoDB的JDBC驱动程序。一个刚刚被一家名为UnityJDBC的公司发布。你可以免费下载程序和驱动程序......

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

答案 2 :(得分:1)

Tomcat(或更具体地说,JNDI)确实支持任意资源(<Resource>中的config.xml元素),包括MongoDB的连接信息,而不需要MongoDB(或任何其他非RDBMS)争吵使用JDBC。所需要的只是javax.naming API的实现,以定义自定义资源的属性(请参阅Tomcat JNDI HOW-TO参考中的Adding Custom Resource Factories)。

我最近发现this GitHub project旨在将MongoDB数据源连接信息存储为JNDI资源,同时使用官方MongoDB Java客户端。

如果您正在使用Spring,this other answer在使用Spring时通过JNDI资源提供有关MongoDB数据源配置的信息(该代码也可用作创建自己的自定义JNDI资源加载器的指南) MongoDB或您存储在Tomcat context.xml中的任何其他配置属性。)