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 如何从同一个捆绑包连接到两个不同的dbs?_Java_Mongodb_Blueprint Osgi - Fatal编程技术网

Java 如何从同一个捆绑包连接到两个不同的dbs?

Java 如何从同一个捆绑包连接到两个不同的dbs?,java,mongodb,blueprint-osgi,Java,Mongodb,Blueprint Osgi,我正在构建一个OSGi应用程序,我想访问两个不同的mongodb,一个用于授权,另一个用于存储数据 在我当前的blueprint.xml中,我使用 <cm:property-placeholder persistent-id="com.example" update-strategy="reload"> <cm:default-properties>

我正在构建一个OSGi应用程序,我想访问两个不同的mongodb,一个用于授权,另一个用于存储数据

在我当前的blueprint.xml中,我使用

 <cm:property-placeholder
            persistent-id="com.example"
            update-strategy="reload">
        <cm:default-properties>
            <cm:property name="mongodbUsername" value="XXXX"/>
            <cm:property name="mongodbPassword" value="XXXX"/>
            <cm:property name="mongodbDatabase" value="XXXX"/>
            <cm:property name="mongodbIp" value="XXXXXX"/>
            <cm:property name="mongodbPort" value="27017"/>
        </cm:default-properties>
    </cm:property-placeholder>

    <bean id="mongoConfig"
          class="com.example.MongoConfig"
          init-method="init">
        <property name="dbIp" value="${mongodbIp}"/>
        <property name="dbName" value="${mongodbDatabase}"/>
        <property name="dbPort" value="${mongodbPort}"/>
        <property name="dbPassword" value="${mongodbPassword}"/>
        <property name="dbUsername" value="${mongodbUsername}"/>
    </bean>
public class MongoConfig {

    private String dbUsername;
    private String dbPassword;
    private String dbIp;
    private int dbPort;
    private String dbName;

    private MongoClient mongoClient;

    private static final String COLLECTION = "example";

    private MongoCollection<Document> myCollection;

    public void init() {
        String serverDetails = String.format("%s:%s", dbIp, dbPort);
        String userAuth = "";
        String connUrl = "";
        if (dbUsername != null && dbPassword != null) {
            userAuth = String.format("%s:%s", dbUsername, dbPassword);
            connUrl = String.format("mongodb://%s@%s", userAuth, serverDetails);
        } else {
            connUrl = String.format("mongodb://%s", serverDetails);
        }
        MongoClientURI uri = new MongoClientURI(connUrl);
        this.mongoClient = new MongoClient(uri);

        this.myCollection = mongoClient.getDatabase(dbName).getCollection(COLLECTION);
    }
}