启动jfinal直接访问index.jsp报错

2017-04-26 11:23:55.016:WARN:oejs.ServletHandler:Error for /index.jsp
java.lang.NoSuchMethodError: javax.servlet.ServletContext.getJspConfigDescriptor()Ljavax/servlet/descriptor/JspConfigDescriptor;
    at org.apache.jasper.compiler.JspConfig.processWebDotXml(JspConfig.java:106)
    at org.apache.jasper.compiler.JspConfig.init(JspConfig.java:196)
    at org.apache.jasper.compiler.JspConfig.findJspProperty(JspConfig.java:259)
    at org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:166)
    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:820)
    at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:669)
    at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1336)
    at com.jfinal.core.JFinalFilter.doFilter(JFinalFilter.java:84)
    at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1307)
    at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:453)
    at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:137)
    at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:560)
    at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:231)
    at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1072)
    at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:382)
    at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:193)
    at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1006)
    at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135)
    at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116)
    at org.eclipse.jetty.server.Server.handle(Server.java:365)
    at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:485)
    at org.eclipse.jetty.server.AbstractHttpConnection.headerComplete(AbstractHttpConnection.java:926)
    at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.headerComplete(AbstractHttpConnection.java:988)
    at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:635)
    at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:235)
    at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82)
    at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:628)
    at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:52)
    at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608)
    at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543)
    at java.lang.Thread.run(Thread.java:745)

评论区

JFinal

2017-04-26 11:39

缺包而已,如果是 maven 用户添加一下相关依赖:
groupId:org.eclipse.jetty
artifactId:jetty-jsp
version:8.1.8.v20121106

将上面三个配置转换成 maven pom.xml 中的 dependency 格式,如果不是 maven 项目,在 jfinal 官网首页下载 jfinal-3.0-all.zip ,里面有一个 lib 目录,下面有个 jstl 目录,将里面的 jar 用上

耿少卿

2017-04-26 14:31

@JFinal lib目录下的两个jar包都用上了

耿少卿

2017-04-26 14:33

@JFinal 访问html没问题,jsp不行

JFinal

2017-04-26 14:38

@耿少卿 很多年不用 JSP 了,对此也没有什么建议,这个是 java web 基础问题,找找 jsp 相关资料应该可以解决

建议试试 jfinal template engine,省心多了

JFinal

2017-04-26 14:41

@耿少卿 补充一下:刚想到 java.lang.NoSuchMethodError 这个异常,很有可能是你的 jsp/jstl 相关 jar 包的版本不对引起的,jstl 的版本不同,里面开放出来的 method 也有所不同

注意检查一下 web.xml 中的 xml 标记中使用的是 j2ee 哪个规范的版本,以及在 lib 中实际使用的是什么 jstl 的版本

耿少卿

2017-04-26 14:42

热门反馈

扫码入社