Idea CE 下创建的基于 maven 的 Spring Boot 项目,在使用 命令启动时出现错误。
完整错误信息:
[ERROR] Failed to execute goal org.springframework.boot:spring-boot-maven-plugin:1.4.3.RELEASE:run (default-cli) on project testboot: An exception occurred while running. null: InvocationTargetException: Failed to parse configuration class [Application]; nested exception is org.springframework.context.annotation.ConflictingBeanDefinitionException: Annotation-specified bean name 'errorPageFilter' for bean class [org.springframework.boot.web.support.ErrorPageFilter] conflicts with existing, non-compatible bean definition of same name and class [org.springframework.boot.context.web.ErrorPageFilter] -> [Help 1] [ERROR] [ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch. [ERROR] Re-run Maven using the -X switch to enable full debug logging. [ERROR] [ERROR] For more information about the errors and possible solutions, please read the following articles: [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException此错误注释掉 Application.java 中的 @ComponentScan 注解就可以了。
看错误信息根本没有想到会和 @ComponentScan 注解有关系,直到搜索到一个回答发现和自己的项目中的配置不一样。
@EnableScheduling @EnableAspectJAutoProxy @EnableCaching @Configuration @ComponentScan(basePackages = { "org.kemri.wellcome.hie" }, excludeFilters = {@Filter(value = Controller.class, type = FilterType.ANNOTATION)}) @EnableAutoConfiguration @PropertySource("classpath:application.properties") public class Application extends SpringBootServletInitializer { public static void main(String[] args) { SpringApplication.run(Application.class, args); } }