1. 程式人生 > >ssh項目導入報the import javax.servlet cannot be resolved

ssh項目導入報the import javax.servlet cannot be resolved

span exceptio 百度 pan util 解決方法 pat pro 不起作用

在做javaWeb項目時,我們經常會出現丟失包的情況,如下圖所示的錯誤,我們應該怎麽解決呢?

根據網上教程向工程中加入tomcat的servlet-api.jar和jsp-api.jar的包

  技術分享圖片

此時項目確實不會報錯了,但是更坑的報錯出現了;運行項目發現

嚴重: Servlet.service() for servlet jsp threw exception
java.lang.NullPointerException
at org.apache.jsp.index_jsp._jspInit(index_jsp.java:23)
at org.apache.jasper.runtime.HttpJspBase.init(HttpJspBase.java:52)


at org.apache.jasper.servlet.JspServletWrapper.getServlet(JspServletWrapper.java:164)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:340)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:723)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)

at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:861)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:620)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Thread.java:745)


然後百度一頓搜索;查找到的原因是jsp-api.jar包與tomcat下的jsp-api.jar包沖突,要移除沖突的包;然後就去找WEB-INF下面的包,沒發現這兩個包啊,確實是很奇怪;

後面認真查看項目的結構,問題終於找到了;發現少了 JAVA EE5 Libraries系統包;而servlet-api.jar和jsp-api.jar在JAVA EE5 Libraries包下,直接使用javaee5 library的包即可;

解決方法

引入 JAVA EE5 Libraries系統包,並查找.classpath文件中查看是否有servlet-api.jar和jsp-api.jar這兩個包的加載配置,如果有的話就刪除即可

最重要的一點 一定要clean下項目,不然不起作用。

ssh項目導入報the import javax.servlet cannot be resolved