我對SpringData MongoDB的一些測試程序的工作,我做了同樣的,作爲其http://static.springsource.org/spring-data/data-document/docs/1.0.0.M2/reference/html/#mongo.core提到的擊打其表現異常異常而通過連接數據春到MongoDB的
package com.springMongo.core;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
import org.springframework.data.mongodb.core.MongoOperations;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.data.mongodb.core.query.Criteria;
import com.springMongo.config.MongoConfig;
import com.springMongo.person.Person;
public class MongoApp {
private static final Log log = LogFactory.getLog(MongoApp.class);
public static void main(String[] args) {
ApplicationContext ctx = new AnnotationConfigApplicationContext(MongoConfig.class);
MongoOperations mongoOps = ctx.getBean(MongoOperations.class);
mongoOps.insert(new Person("1234", "Joe"));
log.info(mongoOps.findOne(new Query(Criteria.where("name").is("Joe")), Person.class));
}
}
package com.springMongo.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.config.AbstractMongoConfiguration;
import com.mongodb.Mongo;
/**
* Spring MongoDB configuration file
*
*/
@Configuration
public class MongoConfig extends AbstractMongoConfiguration {
@Override
public Mongo mongo() throws Exception {
return new Mongo("128.0.0.1",10001);
}
@Override
public MongoTemplate mongoTemplate() throws Exception {
return new MongoTemplate(mongo() , "try_db");
}
@Override
public String getDatabaseName() {
// TODO Auto-generated method stub
return null;
}
}
package com.springMongo.person;
public class Person {
private String id;
private String name;
public Person(String id, String name) {
this.id = id;
this.name = name;
}
public String getId() {
return id;
}
public String getName() {
return name;
}
@Override
public String toString() {
return "Person [id=" + id + ", name=" + name + "]";
}
}
但運行MongoApp.java後,我我得到以下異常
2012年1月3日下午十二時41分28秒org.springframework.context.support.AbstractApplicationContext prepareRefresh 信息:清爽org.spring[email protected]7c64dc11:啓動日期[星期二年1月3 12:41:28 IST 2012];上下文層次結構的根 2012年1月3日下午12時41分29秒org.springframework.beans.factory.support.DefaultListableBeanFactory preInstantiateSingletons 信息:預先實例化org.s[email protected]2b275d39中的單例:定義bean [org.springframework.context.annotation.internalConfigurationAnnotationProcessor,org.springframework.context.annotation.internalAutowiredAnnotationProcessor,org.springframework.context.annotation.internalRequiredAnnotationProcessor,org.springframework.context.annotation.internalCommonAnnotationProcessor,mongoConfig,org.springframework.context。 annotation.ConfigurationClassPostProcessor $ ImportAwareBeanPostProcessor#0,蒙戈,mongoTemplate,mongoDbFactory,mongoMappingContext,mappingMongoConverter];工廠層次結構的根 2012年1月3日下午12點41分29秒org.springframework.beans.factory.support.DefaultSingletonBeanRegistry destroySingletons 信息:破壞org.s[email protected]2b275d39中的單例:定義bean [ org.springframework.context.annotation.internalConfigurationAnnotationProcessor,org.springframework.context.annotation.internalAutowiredAnnotationProcessor,org.springframework.context.annotation.internalRequiredAnnotationProcessor,org.springframework.context.annotation.internalCommonAnnotationProcessor,mongoConfig,org.springframework.context.annotation。 ConfigurationClassPostProcessor $ ImportAwareBeanPostProcessor#0,蒙戈,mongoTemplate,mongoDbFactory,mongoMappingContext,mappingMongoConverter]。工廠層次結構的根 線程「main」中的異常org.springframework.beans.factory.BeanCreationException:在類com.springMongo.config.MongoConfig中定義名稱爲'mongoDbFactory'的bean時創建錯誤:bean的實例化失敗;嵌套異常是org.springframework.beans.factory.BeanDefinitionStoreException:工廠方法[public org.springframework.data.mongodb.MongoDbFactory org.springframework.data.mongodb.config.AbstractMongoConfiguration.mongoDbFactory()throws java.lang.Exception]拋出異常;嵌套異常是java.lang.IllegalArgumentException:數據庫名稱不能爲空 at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:581) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory .instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1015) 在org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:911) 在org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java :485) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456) at org.springfr amework.beans.factory.support.AbstractBeanFactory $ 1.getObject(AbstractBeanFactory.java:294) at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:225) at org.springframework.beans.factory .support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:291) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:193) at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons (DefaultListableBeanFactory.java:585) at org.springframework.context.support.AbstractApplicationContext。finishBeanFactoryInitialization(AbstractApplicationContext.java:913) 在org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:464) 在org.springframework.context.annotation.AnnotationConfigApplicationContext。在(AnnotationConfigApplicationContext.java:73) COM .springMongo.core.MongoApp.main(MongoApp.java:21) 原因:org.springframework.beans.factory.BeanDefinitionStoreException:工廠方法[public org.springframework.data.mongodb.MongoDbFactory org.springframework.data.mongodb。 config.AbstractMongoConfiguration.mongoDbFactory()拋出java.lang.Exception]拋出異常;嵌套異常是java.lang.IllegalArgumentException:數據庫名稱不能爲空 at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:169) at org.springframework.beans.factory.support.ConstructorResolver .instantiateUsingFactoryMethod(ConstructorResolver.java:570) ...... 13多個 造成的:java.lang.IllegalArgumentException異常:數據庫名稱不能爲空 在org.springframework.util.Assert.hasText(Assert.java:162) at org.springframework.data.mongodb.core.SimpleMongoDbFactory。(SimpleMongoDbFactory.java:58) at org.springframework.data.mongodb.config.AbstractMongoConfiguration.mongoDbFactory(AbstractMongoConfiguration.java:54) at com.springMongo.config。 MongoConfi g $$ EnhancerByCGLIB $$ 2129bffe.CGLIB $ mongoDbFactory $ 3() at com.springMongo.config.MongoConfig $$ EnhancerByCGLIB $$ 2129bffe $$ FastClassByCGLIB $$ 7ac56fd1.invoke() at net.sf.cglib.proxy.MethodProxy .invokeSuper(MethodProxy.java:215) at org.springframework.context.annotation.ConfigurationClassEnhancer $ BeanMethodInterceptor.intercept(ConfigurationClassEnhancer.java:280) at com.springMongo.config.MongoConfig $$ EnhancerByCGLIB $$ 2129bffe.mongoDbFactory() 在sun.reflect.NativeMethodAccessorImpl.invoke0(本機方法) 在sun.reflect.NativeMethodAccessorImpl.invoke(來源不明) 在sun.reflect.DelegatingMethodAccessorImpl.invoke(來源不明) 在java.lang.reflect.Method.invoke (未知來源) at org.springfr amework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:149) ...... 14多個
它的工作由於指定數據庫名稱:) – 2012-01-03 08:11:13