spring boot jsp之Intellij異常__js

來源:互聯網
上載者:User
情境描述

項目中用到spring boot進行帶頁面的開發,從github上的simples中下載了對應的spring-boot-sample-web-jsp項目,經簡單修改之後死活啟動不起來,各種異常。spring-boot以簡單容易上手為核心宗旨,可為什麼在引入jar時就會出現這麼多問題呢。 異常資訊

異常一:

2016-06-17 11:04:14.216 ERROR 4684 --- [           main] o.s.boot.SpringApplication               : Application startup failedjava.lang.NoClassDefFoundError: javax/servlet/ServletContext    at java.lang.Class.getDeclaredMethods0(Native Method)    at java.lang.Class.privateGetDeclaredMethods(Class.java:2531)    at java.lang.Class.getDeclaredMethods(Class.java:1855)

很顯然,這是沒有找到ServletContext類導致的,於是乎,異想天開的添加了servlet-api的jar包。
添加之後,出現異常二:

2016-06-17 11:06:13.860 ERROR 224 --- [           main] o.s.boot.SpringApplication               : Application startup failedorg.springframework.context.ApplicationContextException: Unable to start embedded container; nested exception is org.springframework.context.ApplicationContextException: Unable to start EmbeddedWebApplicationContext due to missing EmbeddedServletContainerFactory bean.

在網上搜尋了各種此異常的解決方案都沒有解決成功。 解決方案

在經過多次嘗試,幾乎要放棄的時候,突然想到一個問題,會不會是因為Intellij整合maven引入jar包時scope設定的問題。

仔細檢查pom檔案,發現問題可能出現在一下兩個地方:

<dependency>      <groupId>org.springframework.boot</groupId>      <artifactId>spring-boot-starter-tomcat</artifactId>      <version>1.2.3.RELEASE</version>      <scope>provided</scope>    </dependency>    <dependency>      <groupId>org.apache.tomcat.embed</groupId>      <artifactId>tomcat-embed-jasper</artifactId>      <version>7.0.68</version>      <scope>provided</scope>    </dependency>

注釋掉兩個配置中的

<scope>provided</scope>

問題就這麼解決了。 總結

這可能是Intellij的一個bug,在使用spring-boot的時候,如果把某個引入的依賴設定為provided,那麼在Intellij啟動時就會找不到相應的類。因此,此時需要把此項配置給注釋掉,但是打包上線的時候並不需要這些依賴,那麼在打包的時候就把注釋開啟,即可。

已經遇到兩次相同的問題,謹記。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.