Failed to introspect annotated ** org.springframework.boot.web.support.SpringBootServletInitializer

肖老闆發表於2019-03-21

Failed to introspect annotated ** org.springframework.boot.web.support.SpringBootServletInitializer

Spring Boot應用啟動類:

@SpringBootApplication
public class ApiApplication  extends SpringBootServletInitializer {

	@Override
	protected SpringApplicationBuilder configure(SpringApplicationBuilder applicationBuilder) {
		return applicationBuilder.sources(ApiApplication.class);
	}

	public static void main(String[] args) {
		SpringApplication.run(ApiApplication.class, args);
	}
}
  1. 解決方案一,修改pom.xml,將tomcatscope修改為compile
<dependency>      
    <groupId>org.springframework.boot</groupId>      
    <artifactId>spring-boot-starter-tomcat</artifactId>      
    <scope>compile</scope>      
    <!--<scope>provided</scope>-->
</dependency>
  1. 解決方案二,使用命令列啟動程式,但是這種啟動方式就不能斷點除錯了:
spring-boot:run

原因:這個可能時IDEA的一個BUG或者是沒有設定好classpath,程式在啟動時找不到servlet context,打包成war時放到tomcat容器裡面去執行時war包會使用tomcatservlet context;在本地除錯時,如果scopeprovided的話,由於IDEA沒有設定好classpath,然後也沒有用tomcat的依賴,所以就找不到servlet context,因而報錯。由此就產生了如上兩種可選的解決方案!

相關文章