<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Sky's blog

    我和我追逐的夢

    常用鏈接

    統(tǒng)計(jì)

    其他鏈接

    友情鏈接

    最新評論

    解決Jetty下EL版本沖突的問題

        今天用jetty做嵌入式web container,來做web項(xiàng)目的integration test,結(jié)果發(fā)現(xiàn)出現(xiàn)在渲染使用EL表達(dá)式的jsp頁面時(shí)出現(xiàn)異常:

        javax.el.ExpressionFactory.newInstance()Ljavax/el/ExpressionFactory;

    Caused by: java.lang.NoSuchMethodError: javax.el.ExpressionFactory.newInstance()Ljavax/el/ExpressionFactory;
    at org.apache.jasper.compiler.JspUtil.getExpressionFactory(JspUtil.java:1189)
    at org.apache.jasper.compiler.JspUtil.validateExpressions(JspUtil.java:651)
    at org.apache.jasper.compiler.Validator$ValidateVisitor.visit(Validator.java:760)
    at org.apache.jasper.compiler.Node$ELExpression.accept(Node.java:947)
    at org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2297)
    at org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2347)
    at org.apache.jasper.compiler.Node$Visitor.visit(Node.java:2353)
    at org.apache.jasper.compiler.Node$Root.accept(Node.java:499)
    at org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2297)
    at org.apache.jasper.compiler.Validator.validate(Validator.java:1882)
    at org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:223)
    at org.apache.jasper.compiler.Compiler.compile(Compiler.java:451)
    at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:625)
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374)
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:492)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:378)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:848)
    at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:594)
    at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:486)
    at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:119)
    at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:542)
    at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:233)
    at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1065)
    at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:413)
    at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:192)
    at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:999)
    at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:117)
    at org.eclipse.jetty.server.Dispatcher.forward(Dispatcher.java:271)
    at org.eclipse.jetty.server.Dispatcher.forward(Dispatcher.java:98)
    at org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:238)
    at org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:262)
    at org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1157)
    at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:927)
    at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:827)
    at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882)
    at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:778)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:735)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:848)
    at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:594)
    at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1366)
    at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
    at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1337)
    at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:484)
    at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:119)
    at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:524)
    at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:233)
    at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1065)
    at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:413)
    at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:192)
    at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:999)
    at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:117)
    at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:111)
    at org.eclipse.jetty.server.Server.handle(Server.java:351)
    at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:454)
    at org.eclipse.jetty.server.AbstractHttpConnection.headerComplete(AbstractHttpConnection.java:890)
    at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.headerComplete(AbstractHttpConnection.java:944)
    at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:634)
    at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:230)
    at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:77)
    at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:609)
    at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:45)
    at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:599)
    at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:534)
    at java.lang.Thread.run(Thread.java:619)

        檢查了一下,發(fā)現(xiàn)javax.el.ExpressionFactory.newInstance()這個(gè)方法是EL2.2版本之后才有的方法,而在EL2.1之中是沒有這個(gè)方法的,問題很明顯:org.apache.jasper中試圖調(diào)用2.2版本的EL,當(dāng)時(shí)提供的EL的版本是2.1版本,所以解決的方式無非就是兩個(gè),要不降低org.apache.jasper的版本,要不提升el的版本。考慮到現(xiàn)在使用的jetty已經(jīng)是最新的版本8.1.2.v20120308,因此提升EL的版本為2.2更為合適。

         修改pom.xml文件,將
    <dependency>
    <groupId>javax.servlet.jsp</groupId>
    <artifactId>jsp-api</artifactId>
    <version>2.1</version>
    <scope>provided</scope>
    </dependency>
         修改為2.2版本,上述問題順利解決,之前的el異常不再出現(xiàn)。

    posted on 2012-05-25 07:11 sky ao 閱讀(11099) 評論(2)  編輯  收藏 所屬分類: web

    評論

    # re: 解決Jetty下EL版本沖突的問題 2012-05-27 12:14 廈門注冊公司

    這個(gè)沖突很有感覺的  回復(fù)  更多評論   

    # re: 解決Jetty下EL版本沖突的問題 2014-10-13 16:17 樂森林

    為什么我測試了沒用  回復(fù)  更多評論   

    主站蜘蛛池模板: 成在人线av无码免费高潮喷水 | 老司机永久免费网站在线观看| 国产免费一区二区视频| 免费av片在线观看网站| 亚洲精品视频在线观看免费| 两性色午夜免费视频| 在线精品亚洲一区二区| 免费一级肉体全黄毛片| 97无码人妻福利免费公开在线视频 | 青青在线久青草免费观看| 免费国产在线精品一区| 亚洲导航深夜福利| 四虎国产精品免费久久影院| 一级做a爰片久久毛片免费看 | 亚洲av无码日韩av无码网站冲 | 亚洲午夜久久久久久尤物| 久久久久亚洲AV成人片| 亚洲电影免费在线观看| 亚洲av女电影网| 亚洲最大黄色网址| 亚洲日本久久一区二区va| 亚洲午夜福利在线视频| 久久亚洲色WWW成人欧美| 曰批全过程免费视频观看免费软件| 亚洲日韩AV无码一区二区三区人| 97久久国产亚洲精品超碰热| 亚洲av日韩综合一区久热| 污网站在线观看免费| 永久免费不卡在线观看黄网站| 一级毛片免费毛片一级毛片免费 | 1000部拍拍拍18勿入免费凤凰福利| 国产成人福利免费视频| 精品少妇人妻AV免费久久洗澡| 又大又硬又爽免费视频| 亚洲第一视频网站| 亚洲国产av玩弄放荡人妇| 成年免费a级毛片免费看无码| 3d成人免费动漫在线观看| 免费人成视频x8x8入口| 日木av无码专区亚洲av毛片| 午夜亚洲国产理论片二级港台二级|