1. 程式人生 > >Spring Boot,IntelliJ IDEA,JSP,啟動報錯java.lang.NoClassDefFoundError: javax/servlet/ServletContext

Spring Boot,IntelliJ IDEA,JSP,啟動報錯java.lang.NoClassDefFoundError: javax/servlet/ServletContext

  • 問題描述
    今天試了下Idea這個工具,發現它的編碼功能十分強大,在啟動Spring Boot專案時,發現報錯:
java.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)

在之前的專案中,已經知道spring boot要使用jsp,必須在pom檔案中新增如下配置(在Eclipse中可以正常啟動):

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-tomcat</artifactId>
    <scope>provided</scope><!--由JDK或者容器提供-->
</dependency
>
<dependency> <groupId>org.apache.tomcat.embed</groupId> <artifactId>tomcat-embed-jasper</artifactId> <scope>provided</scope> </dependency>
  • 解決步驟1
    百度了下,說是要註釋掉provided這一個scope(idea編譯啟動後找不到被指定為provided這種jar包),也不知道真假,試了下,確實可以啟動了。
    但是在通過Controller訪問jsp頁面時,頁面又錯了
Whitelabel Error Page

This application has no explicit mapping for /error, so you are seeing this as a fallback.
Thu Feb 23 16:45:26 CST 2017
There was an unexpected error (type=Not Found, status=404).
/WEB-INF/jsp/0.2/login.jsp
  • 解決步驟2
    這裡弄了很長時間,才發現是自己傻X了(也因為對idea不熟悉),在配置啟動方式的時候,要指定working directory
    這裡寫圖片描述
    OK,至此解決,這個工具還要 多玩玩才能裝起來。。。