今天我從碼雲上拉一個項目下來,是個maven項目,閑來無事自己研究研究,發現剛拉下來,項目就有報錯,我一看是httpServletRequest cannot be resolved to a type, 應該是少了servlet的jar包,直接在pom.xml中添加了這個servlet的依賴,這個依賴的域范圍要改成provided 即:
1 <dependency> 2 <groupId>javax.servlet</groupId> 3 <artifactId>javax.servlet-api</artifactId> 4 <version>${servlet.version}</version> 5 <scope>provided</scope> 6 </dependency>
發現錯誤變成了標題上的兩個錯誤,這兩個錯誤都是沒有jsp的jar包導致的,我果斷再加了一個依賴:
1 <dependency> 2 <groupId>javax.servlet</groupId> 3 <artifactId>jsp-api</artifactId> 4 <version>2.0</version> 5 <scope>provided</scope> 6 </dependency>
這樣就不報錯了,項目正常啟動,第一次我這個jsp-api的域范圍沒有設置為provided,啟動項目就報錯
報的是:
1 Failed to start component [StandardEngine[Tomcat].StandardHost[localhost].StandardContext[/mybatisplus-spring-mvc]]
然后我改了jsp-api的作用域就ok了,這里解釋下為什么要將這兩個依賴的作用域設置為provided,這是因為我使用的是maven內置的tomcat插件啟動的項目,而tomcat本身就
自帶了這兩個jar包,如果你設置為默認的,會將這兩個jar包打包進去,就會造成重復,和Tomcat里自帶的相沖突。
大家看一下就明白了

當然如果你使用的是maven內置的插件jetty的話,就不用設置這個域的范圍!
解決方法二:
選擇你的項目,右擊build path -》Config Build Path.. ->libraries->Add External JARS..
然后選擇你本機器上的Tomcat,選擇它里面的jsp-api.jar
然后一路確定就可以了。
如有不對的地方,歡迎指正!
