Unable to Start embedded TomCat
阿新 • • 發佈:2018-12-24
一, 有的是jar包衝突
問題:
servlet-api的jar包和springboot的啟動jar包產生衝突
servlet-api.jar
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>
springBoot啟動jar包
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
解決辦法:
把servlet-api的依賴刪除,啟動正常
二,
使用springboot的時候,通過點選點選Application類中的類方法直接執行的時候一直報以下錯誤:
找問題的時候,通過這篇文章的:http://stackoverflow.com/questions/21783391/spring-boot-unable-to-start-embeddedwebapplicationcontext-due-to-missing-embedd?rq=1
看到有個老外說在程式碼中強制宣告一個EmbeddedServletContainerFactory,程式碼如下:
- @Bean
- public EmbeddedServletContainerFactory servletContainer() {
- TomcatEmbeddedServletContainerFactory factory =
- new TomcatEmbeddedServletContainerFactory();
- return factory;
- }
第一個辦法:降低springboot的版本
第二個辦法:強制宣告jetty的版本為本機jdk適配的,如我本機jdk為1.7,那我強制宣告jett的版本為:
- <jetty.version>9.2.17.v20160517</jetty.version>
花了幾個小時,哎。最後吐槽下,報錯資訊能不能精確點呢。
三,
電腦上面的QQ採用的是隨機埠號,我的專案採用的是8082,QQ升級後隨機分配埠,而我的專案當時沒有啟動,所以QQ佔用了8082埠,導致專案不能啟動。
解決辦法很簡單 退出QQ 然後先啟動專案佔用埠,重新登入QQ的時候,8082佔用時它會重新分配埠。