在运行测试的时候出现加载applicationContext.xml文件失败,
在测试累里写了
ApplicationContext a= new ClassPathXmlApplicationContext("applicationContext.xml");
DaoImpl dao = (DaoImpl) a.getBean("dao"); 而且文件也在SRC路径下。
在配置文件里 也配了。
报这个错误。
log4j:WARN No appenders could be found for logger (org.springframework.core.CollectionFactory).
log4j:WARN Please initialize the log4j system properly.
Exception in thread "main" org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in class path resource [applicationContext.xml]: Initialization of bean failed; nested exception is org.hibernate.MappingException: java.lang.StringIndexOutOfBoundsException: String index out of range: 0
org.hibernate.MappingException: java.lang.StringIndexOutOfBoundsException: String index out of range: 0
at org.hibernate.cfg.Configuration.addInputStream(Configuration.java:408)
at org.springframework.orm.hibernate3.LocalSessionFactoryBean.afterPropertiesSet(LocalSessionFactoryBean.java:679)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1091)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:396)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:233)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:145)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:277)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:313)
at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:87)
at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:72)
at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:63)
at com.xianfeng.xfsystem.unitTest.UnitTest.<init>(UnitTest.java:14)
at com.xianfeng.xfsystem.unitTest.UnitTest.main(UnitTest.java:44)
Caused by: java.lang.StringIndexOutOfBoundsException: String index out of range: 0
at java.lang.String.charAt(String.java:558)
at org.hibernate.mapping.Column.setName(Column.java:59)
at org.hibernate.cfg.HbmBinder.bindColumns(HbmBinder.java:969)
at org.hibernate.cfg.HbmBinder.bindColumnsOrFormula(HbmBinder.java:1313)
at org.hibernate.cfg.HbmBinder.bindSimpleValue(HbmBinder.java:1001)
at org.hibernate.cfg.HbmBinder.bindSimpleId(HbmBinder.java:350)
at org.hibernate.cfg.HbmBinder.bindRootPersistentClassCommonValues(HbmBinder.java:294)
at org.hibernate.cfg.HbmBinder.bindRootClass(HbmBinder.java:236)
at org.hibernate.cfg.HbmBinder.bindRoot(HbmBinder.java:152)
at org.hibernate.cfg.Configuration.add(Configuration.java:362)
at org.hibernate.cfg.Configuration.addInputStream(Configuration.java:400)
... 12 more

解决方案 »

  1.   

    Exception in thread "main" org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in class path resource [applicationContext.xml]: Initialization of bean failed; nested exception is org.hibernate.MappingException: java.lang.StringIndexOutOfBoundsException: String index out of range: 0看这样子是 hibernate的配置,或者与hibernate有关的 spring配置有问题
      

  2.   

    如果在DAO中用到了hibernate,那你看下在applicationContext.xml中注入DAO的时候有没有加
    <property name="sessionFactory" ref="sessionFactory"></property>
      

  3.   

    2#说的很正确
    sessionFactory和database那些bean
    再一些类被spring翻转的时候
    需要添加成为该类的属性的或者你看看你的那些name是否正确
    先看看你的spring文件里是否有红色的XX