Bootstrap

Spring Boot 工程启动报错"org.springframework.context.ApplicationContextException: Unable to start ..."解决方案

Spring Boot 工程在服务器上启动时候,一直报如下错误:

POD名:xxx-service-2264321674-pdcd7;
部署版本号:1512978430164;
POD阶段:Running;
服务状态:启动失败;
启动日志:
org.springframework.context.ApplicationContextException: Unable to start embedded container; nested exception is org.springframework.context.ApplicationContextException: Unable to start EmbeddedWebApplicationContext due to missing EmbeddedServletContainerFactory bean.
	at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.onRefresh(EmbeddedWebApplicationContext.java:133)
	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:532)
	at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:118)
	at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:766)
	at org.springframework.boot.SpringApplication.createAndRefreshContext(SpringApplication.java:361)
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:307)
	at com.banksteel.boot.Main.run(Main.java:57)
	at com.banksteel.boot.Main.main(Main.java:37)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:606)
	at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:54)
	at java.lang.Thread.run(Thread.java:744)
Caused by: org.springframework.context.ApplicationContextException: Unable to start EmbeddedWebApplicationContext due to missing EmbeddedServletContainerFactory bean.
	at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.getEmbeddedServletContainerFactory(EmbeddedWebApplicationContext.java:185)
	at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.createEmbeddedServletContainer(EmbeddedWebApplicationContext.java:158)
	at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.onRefresh(EmbeddedWebApplicationContext.java:130)
	... 13 more

service-start-result0;
POD信息:
暂无。

pom.xml配置文件部分代码片段如下:

	<dependencies>
		<dependency>
			<groupId>com.xxx</groupId>
			<artifactId>xxx-yyy-zzz-api</artifactId>
			<version>1.0.0</version>
		</dependency>
	</dependencies>

原因就是在依赖中需要排除一些跟web相关的jar包,需要增加如下代码:

			<exclusions>
				<exclusion>
			  		<groupId>javax.servlet</groupId>
			  		<artifactId>javax.servlet-api</artifactId>
		  		</exclusion>
			</exclusions>

最终该代码片段如下:

	<dependencies>
		<dependency>
			<groupId>com.xxx</groupId>
			<artifactId>xxx-yyy-zzz-api</artifactId>
			<version>1.0.0</version>
			<exclusions>
				<exclusion>
			  		<groupId>javax.servlet</groupId>
			  		<artifactId>javax.servlet-api</artifactId>
		  		</exclusion>
			</exclusions>
		</dependency>
	</dependencies>

问题解决。

;