Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 我可以使用JNDI共享MongoClient实例吗?_Java_Mongodb_Jetty_Jndi_Mongo Java - Fatal编程技术网

Java 我可以使用JNDI共享MongoClient实例吗?

Java 我可以使用JNDI共享MongoClient实例吗?,java,mongodb,jetty,jndi,mongo-java,Java,Mongodb,Jetty,Jndi,Mongo Java,我正在使用Jetty作为web服务器。我已经构建了一个自定义LoginService/realm,它使用MongoDb获取用户。此LoginService位于自己的jar中,位于jetty服务器容器的类路径上 我还想在我的web应用程序中使用MongoDb。通常,对于SQL,您将设置一个通过JNDI共享的连接池。我可以用MongoDb做类似的事情吗 每个MongoClient管理一个连接池。我可以在JNDI(即MongoClient实例)中存储任意对象,还是必须使用ObjectFactory接口

我正在使用Jetty作为web服务器。我已经构建了一个自定义LoginService/realm,它使用MongoDb获取用户。此LoginService位于自己的jar中,位于jetty服务器容器的类路径上

我还想在我的web应用程序中使用MongoDb。通常,对于SQL,您将设置一个通过JNDI共享的连接池。我可以用MongoDb做类似的事情吗

每个MongoClient管理一个连接池。我可以在JNDI(即
MongoClient
实例)中存储任意对象,还是必须使用
ObjectFactory
接口

如果我必须创建某种类型的ObjectFactory,我基本上可以将其转换为singleton并返回相同的MongoClient实例吗


我不完全理解JNDI,因为很少有资源真正解释它的神奇之处,所以我甚至可能没有提出正确的问题。

您的服务器中需要这样的东西。xml:

<mongo id="mongo">
    <hostNames>YOUR.MONGODB.HOSTNAME.HERE</hostNames>
</mongo>

<mongoDB databaseName="YOUR_DATABASE_NAME" jndiName="mongo/mongodb" mongoRef="mongo"/>
@Resource(name = "mongo/mongodb")
DB mongoDB;

@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  DBCollection table = mongoDB.getCollection("YOUR_TABLE_NAME");
  // etc.
}