Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/13.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
Mongodb Hibernate OGM:无法在mongo上连接_Mongodb_Hibernate_Hibernate Ogm - Fatal编程技术网

Mongodb Hibernate OGM:无法在mongo上连接

Mongodb Hibernate OGM:无法在mongo上连接,mongodb,hibernate,hibernate-ogm,Mongodb,Hibernate,Hibernate Ogm,我能够通过以下方式成功访问我的mongo实例: #mongo -u user -p pwd -authenticationDatabase admin database 然而,使用Hibernate OGM,我无法访问mongo实例: <persistence version="2.1" xmlns="http://xmlns.jcp.org/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

我能够通过以下方式成功访问我的mongo实例:

#mongo -u user -p pwd -authenticationDatabase admin database
然而,使用Hibernate OGM,我无法访问mongo实例:

<persistence version="2.1" xmlns="http://xmlns.jcp.org/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd">
    <persistence-unit name="mongo" transaction-type="JTA">
        <provider>org.hibernate.ogm.jpa.HibernateOgmPersistence</provider>

        <properties>
            <property name="hibernate.transaction.jta.platform" value="org.hibernate.service.jta.platform.internal.JBossAppServerJtaPlatform" />
            <property name="hibernate.ogm.datastore.provider" value="org.hibernate.ogm.datastore.mongodb.impl.MongoDBDatastoreProvider"/>
            <property name="hibernate.ogm.datastore.database" value="database"/>
            <property name="hibernate.ogm.datastore.host" value="mongo"/>
            <property name="hibernate.ogm.datastore.port" value="27017"/>
            <property name="hibernate.ogm.datastore.username" value="user"/>
            <property name="hibernate.ogm.datastore.password" value="pwd"/>

            <property name="hibernate.ogm.mongodb.connection_timeout" value="5000"></property>
            <property name="hibernate.ogm.mongodb.authentication_mechanism" value="PLAIN"></property>
            <property name="hibernate.ogm.datastore.document.association_storage" value="IN_ENTITY"></property>
            <property name="hibernate.ogm.mongodb.association_document_storage" value="GLOBAL_COLLECTION"></property>
            <property name="hibernate.ogm.mongodb.write_concern" value="MAJORITY"></property>
            <property name="hibernate.ogm.mongodb.read_preference" value="PRIMARY_PREFERRED"></property>
        </properties>
    </persistence-unit>
</persistence>

mongo版本是2.6。

这似乎是版本的问题。
Hibernate OGM 4.2.0.Final应与MongoDB 2.13.1兼容

您可以尝试使用4.1.0 Hibernate版本吗?4.2.0版本使用的是Mongo3.x驱动程序。这样至少你知道这不是一个兼容性问题。
Caused by: org.hibernate.HibernateException: OGM001214: Unable to connect to MongoDB instance mongo:27017,
        at org.hibernate.ogm.datastore.mongodb.impl.MongoDBDatastoreProvider.extractDatabase(MongoDBDatastoreProvider.java:192)
        at org.hibernate.ogm.datastore.mongodb.impl.MongoDBDatastoreProvider.start(MongoDBDatastoreProvider.java:117)
        ... 39 more
Caused by: com.mongodb.CommandFailureException: { "serverUsed" : "mongo:27017" , "ok" : 0.0 , "errmsg" : "no such cmd: saslStart" , "code" : 59 , "bad cmd" : { "saslStart" : 1 , "mechanism" : "PLAIN" , "payload" : <Binary Data>}}
        at com.mongodb.CommandResult.getException(CommandResult.java:76)
        at com.mongodb.CommandResult.throwOnError(CommandResult.java:140)
        at com.mongodb.DBPort$SaslAuthenticator.authenticate(DBPort.java:899)
        at com.mongodb.DBPort.authenticate(DBPort.java:432)
        at com.mongodb.DBPort.checkAuth(DBPort.java:443)
        at com.mongodb.DBTCPConnector.innerCall(DBTCPConnector.java:293)
        at com.mongodb.DBTCPConnector.call(DBTCPConnector.java:273)
        at com.mongodb.DBCollectionImpl.find(DBCollectionImpl.java:84)
        at com.mongodb.DBCollectionImpl.find(DBCollectionImpl.java:66)
        at com.mongodb.DBApiLayer.getCollectionNames(DBApiLayer.java:169)
        at com.mongodb.DB.collectionExists(DB.java:524)
        at org.hibernate.ogm.datastore.mongodb.impl.MongoDBDatastoreProvider.extractDatabase(MongoDBDatastoreProvider.java:183)
        ... 40 more
compile group: 'org.hibernate.ogm', name: 'hibernate-ogm-mongodb', version: '4.2.0.Final'