2017-05-29 95 views
0

我有一个非常基本的程序,但不管我的代码改变我总是得到同样的错误信息:造成的:org.springframework.beans.BeanInstantiationException

Error starting ApplicationContext. To display the auto-configuration report re-run your application with 'debug' enabled. 
2017-05-29 17:03:01.228 ERROR 6260 --- [   main] o.s.boot.SpringApplication    : Application startup failed 

org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'demoApplication': Unsatisfied dependency expressed through field 'queryRepoImp'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'queryRepoImp' defined in file [C:\Dropbox\Projects\h2TestEnv\target\classes\com\example\demo\QueryRepoImp.class]: Instantiation of bean failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [com.example.demo.QueryRepoImp]: Constructor threw exception; nested exception is java.util.MissingResourceException: Can't find com.example.demo.QueryRepoImp bundle 
    at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:588) ~[spring-beans-4.3.8.RELEASE.jar:4.3.8.RELEASE] 
    at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:88) ~[spring-beans-4.3.8.RELEASE.jar:4.3.8.RELEASE] 
    at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:366) ~[spring-beans-4.3.8.RELEASE.jar:4.3.8.RELEASE] 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1264) ~[spring-beans-4.3.8.RELEASE.jar:4.3.8.RELEASE] 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:553) ~[spring-beans-4.3.8.RELEASE.jar:4.3.8.RELEASE] 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:483) ~[spring-beans-4.3.8.RELEASE.jar:4.3.8.RELEASE] 
    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306) ~[spring-beans-4.3.8.RELEASE.jar:4.3.8.RELEASE] 
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230) ~[spring-beans-4.3.8.RELEASE.jar:4.3.8.RELEASE] 
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302) ~[spring-beans-4.3.8.RELEASE.jar:4.3.8.RELEASE] 
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197) ~[spring-beans-4.3.8.RELEASE.jar:4.3.8.RELEASE] 
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:761) ~[spring-beans-4.3.8.RELEASE.jar:4.3.8.RELEASE] 
    at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:866) ~[spring-context-4.3.8.RELEASE.jar:4.3.8.RELEASE] 
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:542) ~[spring-context-4.3.8.RELEASE.jar:4.3.8.RELEASE] 
    at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:122) ~[spring-boot-1.5.3.RELEASE.jar:1.5.3.RELEASE] 
    at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:737) [spring-boot-1.5.3.RELEASE.jar:1.5.3.RELEASE] 
    at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:370) [spring-boot-1.5.3.RELEASE.jar:1.5.3.RELEASE] 
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:314) [spring-boot-1.5.3.RELEASE.jar:1.5.3.RELEASE] 
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1162) [spring-boot-1.5.3.RELEASE.jar:1.5.3.RELEASE] 
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1151) [spring-boot-1.5.3.RELEASE.jar:1.5.3.RELEASE] 
    at com.example.demo.DemoApplication.main(DemoApplication.java:21) [classes/:na] 
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'queryRepoImp' defined in file [C:\Dropbox\Projects\h2TestEnv\target\classes\com\example\demo\QueryRepoImp.class]: Instantiation of bean failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [com.example.demo.QueryRepoImp]: Constructor threw exception; nested exception is java.util.MissingResourceException: Can't find com.example.demo.QueryRepoImp bundle 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:1155) ~[spring-beans-4.3.8.RELEASE.jar:4.3.8.RELEASE] 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1099) ~[spring-beans-4.3.8.RELEASE.jar:4.3.8.RELEASE] 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:513) ~[spring-beans-4.3.8.RELEASE.jar:4.3.8.RELEASE] 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:483) ~[spring-beans-4.3.8.RELEASE.jar:4.3.8.RELEASE] 
    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306) ~[spring-beans-4.3.8.RELEASE.jar:4.3.8.RELEASE] 
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230) ~[spring-beans-4.3.8.RELEASE.jar:4.3.8.RELEASE] 
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302) ~[spring-beans-4.3.8.RELEASE.jar:4.3.8.RELEASE] 
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202) ~[spring-beans-4.3.8.RELEASE.jar:4.3.8.RELEASE] 
    at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:208) ~[spring-beans-4.3.8.RELEASE.jar:4.3.8.RELEASE] 
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1138) ~[spring-beans-4.3.8.RELEASE.jar:4.3.8.RELEASE] 
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1066) ~[spring-beans-4.3.8.RELEASE.jar:4.3.8.RELEASE] 
    at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:585) ~[spring-beans-4.3.8.RELEASE.jar:4.3.8.RELEASE] 
    ... 19 common frames omitted 
Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [com.example.demo.QueryRepoImp]: Constructor threw exception; nested exception is java.util.MissingResourceException: Can't find com.example.demo.QueryRepoImp bundle 
    at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:154) ~[spring-beans-4.3.8.RELEASE.jar:4.3.8.RELEASE] 
    at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:89) ~[spring-beans-4.3.8.RELEASE.jar:4.3.8.RELEASE] 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:1147) ~[spring-beans-4.3.8.RELEASE.jar:4.3.8.RELEASE] 
    ... 30 common frames omitted 
Caused by: java.util.MissingResourceException: Can't find com.example.demo.QueryRepoImp bundle 
    at java.util.logging.Logger.setupResourceInfo(Logger.java:1946) ~[na:1.8.0_131] 
    at java.util.logging.Logger.<init>(Logger.java:380) ~[na:1.8.0_131] 
    at java.util.logging.LogManager.demandLogger(LogManager.java:554) ~[na:1.8.0_131] 
    at java.util.logging.Logger.demandLogger(Logger.java:455) ~[na:1.8.0_131] 
    at java.util.logging.Logger.getLogger(Logger.java:553) ~[na:1.8.0_131] 
    at com.example.demo.QueryRepoImp.<init>(QueryRepoImp.java:17) ~[classes/:na] 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[na:1.8.0_131] 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) ~[na:1.8.0_131] 
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[na:1.8.0_131] 
    at java.lang.reflect.Constructor.newInstance(Constructor.java:423) ~[na:1.8.0_131] 
    at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:142) ~[spring-beans-4.3.8.RELEASE.jar:4.3.8.RELEASE] 
    ... 32 common frames omitted 


Process finished with exit code 1 

我的代码:

@SpringBootApplication 
public class DemoApplication { 

    private static final Logger log = LoggerFactory.getLogger(DemoApplication.class); 

    @Autowired 
    private ApplicationContext context; 

    public static void main(String[] args) { 
     SpringApplication.run(DemoApplication.class, args); 
    } 

    @Autowired 
    QueryRepoImp queryRepoImp; 

    @Bean 
    public CommandLineRunner clr() { 

     return a -> { 
      /* 
      System.out.println("Create Queries"); 
      Query c1 = new Query("Wood"); 
      Query c2 = new Query("Stones"); 

      // insert 
      repo.add(c1); 
      repo.add(c2); 

      for (Query t : repo.findAll()) { 
       System.out.println("Query: " + t.getRelation()); 
      } 


      */ 
     }; 
    } 
} 

QueryRepoImp.java

@Repository 
public class QueryRepoImp implements QueryIRepoInt { 

    private final String SQL_INSERT = "INSERT INTO query (section) VALUES (?)"; 
    private final String SQL_FINDALL = "SELECT * FROM query ORDER BY lastname"; 
    Logger logger = Logger.getLogger("QueryLogger", QueryRepoImp.class.getName()); 

    @Autowired 
    JdbcOperations jdbcTemplate; 

    @Override 
    public void add(Query query) { 
     Object[] objects = {query}; 
     List<Object[]> list = new LinkedList<>(); 
     list.add(objects); 
     jdbcTemplate.batchUpdate(SQL_INSERT, list); 
    } 
} 

QueryIRepoInt.java

@Component 
public interface QueryIRepoInt { 
    void add(Query query); 
} 

谁能告诉我,请在错误皮?谢谢!

+0

而你配置上下文文件/类是...? – Andremoniy

+0

嗨安娜, 你可以添加一个单独的配置文件@Configuration文件或添加 – Pradeep

+0

尝试从实施类中删除'@ Repository'并将'@ Component'更改为'@Repository' – user1211

回答

0

仔细阅读堆栈跟踪。你的问题的原因写在那里。

Caused by: java.util.MissingResourceException: Can't find com.example.demo.QueryRepoImp bundle 

此资源包缺失。检查它是否属于您的项目并重新检查。 (或者您想使用LoggerFactory来获取记录器实例。)

如果您有像这样的嵌套异常,请检查每个异常。

+0

我刚刚删除了记录器部分,现在它正在工作。但说实话,我不明白为什么。我认为这是因为Logger类不是用@Beans注释的吗?我需要记录仪时如何解决这个问题?但是哇,我坐在前面2个小时寻找完全不同的方向。所以,到目前为止谢谢你:) – AnnaKlein

+0

不,你正在使用一种需要ResourceBundle的方法。查看Javadoc的java.util.logging.Logger#getLogger(String,String)。但使用LoggerFactory通常是更好的方法 –

1

请在DemoApplication类中使用以下标签。

@EnableTransactionManagement 
@EnableAutoConfiguration 
@ComponentScan({"Packages you want to scan"}) 
@EnableJpaRepositories("Repository package") 
@SpringBootApplication 
public class DemoApplication 
{ 
     /*Main method*/ 
}