標籤:ges 分享 沒有 pen uil conf http servlet maven
今天我從碼雲上拉一個項目下來,是個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
然後一路確定就可以了。
如有不對的地方,歡迎指正!
javax.servlet.jsp.JspException cannot be resolved to a type 和 javax.servlet.jsp.PageContext cannot be resolved to a type 解決辦法