Spring Data Mongo scheint zu ignorieren, die Gastgeber in XML-Konfiguration
Ich versuche, ein einfaches "Hello World" - Programm mit Spring-Data und MongoDB läuft. Der Frühling scheint zu ignorieren die MongoDB-host-IP-Adresse konfiguriert, die in der <mongo:mongo/>
element und versucht, eine Verbindung zu 127.0.0.1
statt.
Nach diversen tutorials, hier ist meine Feder Konfigurations-XML:
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:mongo="http://www.springframework.org/schema/data/mongo"
xsi:schemaLocation="http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd
http://www.springframework.org/schema/data/mongo
http://www.springframework.org/schema/data/mongo/spring-mongo-1.0.xsd
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
<mongo:mongo host="10.125.0.68" port="27017" />
<mongo:db-factory dbname="test" />
<bean id="mongoTemplate" class="org.springframework.data.mongodb.core.MongoTemplate">
<constructor-arg name="mongoDbFactory" ref="mongoDbFactory" />
</bean>
</beans>
Programm:
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.GenericXmlApplicationContext;
import org.springframework.data.mongodb.core.MongoOperations;
public class Test1
{
public static void main(String[] args)
{
ApplicationContext ctx = new GenericXmlApplicationContext("SpringConfig.xml");
MongoOperations mo = (MongoOperations)ctx.getBean("mongoTemplate");
DbDocument a = new DbDocument("John Smith", "[email protected]");
if (!mo.collectionExists(DbDocument.class)) //<<<----- Exception here
mo.createCollection(DbDocument.class);
mo.save(a);
}
}
Ausnahme geworfen:
WARNING: Exception executing isMaster command on /127.0.0.1:27017
java.io.IOException: couldn't connect to [/127.0.0.1:27017] bc:java.net.ConnectException: Connection refused: connect
at com.mongodb.DBPort._open(DBPort.java:214)
at com.mongodb.DBPort.go(DBPort.java:107)
at com.mongodb.DBPort.go(DBPort.java:88)
at com.mongodb.DBPort.findOne(DBPort.java:143)
at com.mongodb.DBPort.runCommand(DBPort.java:148)
at com.mongodb.DBTCPConnector.initDirectConnection(DBTCPConnector.java:548)
at com.mongodb.DBTCPConnector.checkMaster(DBTCPConnector.java:527)
at com.mongodb.DBTCPConnector.innerCall(DBTCPConnector.java:277)
at com.mongodb.DBTCPConnector.call(DBTCPConnector.java:257)
at com.mongodb.DBApiLayer$MyCollection.__find(DBApiLayer.java:310)
at com.mongodb.DBApiLayer$MyCollection.__find(DBApiLayer.java:295)
at com.mongodb.DB.getCollectionNames(DB.java:412)
at com.mongodb.DB.collectionExists(DB.java:454)
at org.springframework.data.mongodb.core.MongoTemplate$5.doInDB(MongoTemplate.java:438)
at org.springframework.data.mongodb.core.MongoTemplate$5.doInDB(MongoTemplate.java:436)
at org.springframework.data.mongodb.core.MongoTemplate.execute(MongoTemplate.java:372)
at org.springframework.data.mongodb.core.MongoTemplate.collectionExists(MongoTemplate.java:436)
at org.springframework.data.mongodb.core.MongoTemplate.collectionExists(MongoTemplate.java:432)
at org.nwea.jhg.mongo.Test1.main(Test1.java:18)
Ich bin in der Lage, eine Verbindung zu den Mongo-Instanz an der angegebenen Adresse 10.125.0.68
mit einem GUI-tool, und bestätigen, dass es eine Datenbank namens test
.
Fand ich ein paar trifft in StackOverflow, aber weder ist hinreichend ähnlich zu meinem Fall zu sein, das problem zu lösen.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ihre mongo db-Werk nicht identifizieren, die MongoDB-Datenbank IP er verwenden soll.
Versuchen, ein db-Fabrik, die auf die mongoTemplate Wert
<constructor-arg name="mongoDbFactory" ref="mongoDbFactory" />
:Diese sollten auch funktionieren:
<bean id="mongoClient" class="com.mongodb.MongoClient"> <constructor-arg> <bean class="com.mongodb.MongoClientURI"> <constructor-arg type="java.lang.String" value="mongodb://${mongo.db.user}:${mongo.db.password}@${mongo.db.host}:${mongo.db.port}/${mongo.db.database}"/> </bean> </constructor-arg> </bean>