繁体   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