無線&移動互聯網技術研發

          換位思考·····
          posts - 19, comments - 53, trackbacks - 0, articles - 283
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

          Tomcat JspFactory的異常的原因及解決辦法

          Posted on 2010-12-14 17:32 Gavin.lee 閱讀(1272) 評論(1)  編輯  收藏 所屬分類: 經驗&常識

          摘:http://depravedangel.javaeye.com/blog/421663
          The method getJspApplicationContext(ServletContext) is undefined for the type 
           
          JspFactory的異常的原因及解決辦法原因:
               服務器環境Jboss,Java程由Tomcat5.5工程目錄直接拷貝,由于WEB-INF/lib下存在jsp-api.jar、servlet-api.jar,與Jboss自帶的jar包沖突造成。
           
           解決辦法:
               刪除WEB工程Lib目錄中的jsp-api.jar、servlet-api.jar,重新啟動Jboss服務問題解決。 
           
          標記:
               在創建工程時,jsp-api.jar、servlet-api.jar這兩個jar包都無需手工加入到web工程中,tomcat與jboss都已包含。
           
          今天運行以前的一個老項目,不成想拋出下面的異常
          org.apache.jasper.JasperException: Unable to compile class for JSP:

          An error occurred at line: 23 in the generated java file
          The method getJspApplicationContext(ServletContext) is undefined for the type JspFactory

          Stacktrace:
                  org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:92)
                  org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:330)
                  org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:423)
                  org.apache.jasper.compiler.Compiler.compile(Compiler.java:308)
                  org.apache.jasper.compiler.Compiler.compile(Compiler.java:286)
                  org.apache.jasper.compiler.Compiler.compile(Compiler.java:273)
                  org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:566)
                  org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:317)
                  org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
                  org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
                  javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
          上網搜,發現不少人有這個問題,但都沒有解決辦法。后來想到可能和tomcat6有關,因為我在工程的lib中添加了很多包(一堆什么Spring
          依賴),所以把他們一刪JSP就不拋異常了。我估計是,工程中和tomcat6 lib中重復的包在加載時是先被加載(也就是tomcat6中相同的包沒
          有被加載),而工程中的包版本要比tomcat6中的低,造成上面的異常。我對照著tomcat中包,發現工程中出現諸如catalina.jar、jsp-api.jar
          、servlet-api.jar等這樣的重復包,把它們從工程中刪了就應該行了(對于上面的異常,原因應該是包jsp-api.jar)。看來不是什么包都可以一股腦往工程里加啊。


          請關注@我的新浪微博


          評論

          # re: Tomcat JspFactory的異常的原因及解決辦法 沒有重復的包  回復  更多評論   

          2014-04-02 16:03 by
          An error occurred at line: 22 in the generated java file
          The method getJspApplicationContext(ServletContext) is undefined for the type JspFactory

          Stacktrace:
          at org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:92)
          at org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:330)
          at org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:439)
          at org.apache.jasper.compiler.Compiler.compile(Compiler.java:349)
          at org.apache.jasper.compiler.Compiler.compile(Compiler.java:327)
          at org.apache.jasper.compiler.Compiler.compile(Compiler.java:314)
          at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:592)
          at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:326)
          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:717)
          at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
          at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
          at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:646)
          at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:438)
          at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:374)
          at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:302)
          at org.apache.catalina.core.StandardHostValve.custom(StandardHostValve.java:421)
          at org.apache.catalina.core.StandardHostValve.status(StandardHostValve.java:342)
          at org.apache.catalina.core.StandardHostValve.throwable(StandardHostValve.java:286)
          at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:141)
          at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
          at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
          at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
          at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
          at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
          at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
          at java.lang.Thread.run(Thread.java:619)
          主站蜘蛛池模板: 方城县| 卢氏县| 舟曲县| 花垣县| 辰溪县| 林口县| 翁源县| 盖州市| 铁力市| 通榆县| 城口县| 萨迦县| 河间市| 巴林右旗| 湛江市| 古蔺县| 文成县| 高淳县| 青冈县| 三河市| 广汉市| 衡阳县| 丹阳市| 西畴县| 焦作市| 巴林右旗| 涿州市| 普宁市| 霍林郭勒市| 武安市| 旬邑县| 正阳县| 门源| 宁远县| 沧源| 东阳市| 新兴县| 富顺县| 云阳县| 肇庆市| 乳山市|