Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java.lang.NoSuchMethodError:javax.el.ExpressionFactory.GetStreamlResolver()Ljavax/el/ELResolver;_Java_Tomcat_Jstl_Tomcat8 - Fatal编程技术网

java.lang.NoSuchMethodError:javax.el.ExpressionFactory.GetStreamlResolver()Ljavax/el/ELResolver;

java.lang.NoSuchMethodError:javax.el.ExpressionFactory.GetStreamlResolver()Ljavax/el/ELResolver;,java,tomcat,jstl,tomcat8,Java,Tomcat,Jstl,Tomcat8,我得到了错误java.lang.NoSuchMethodError:javax.el.ExpressionFactory.getStreamlResolver()Ljavax/el/ELResolver

我得到了错误
java.lang.NoSuchMethodError:javax.el.ExpressionFactory.getStreamlResolver()Ljavax/el/ELResolverjstl
时进行编码。我已经检查了应用程序的WEB-INF/lib,它不包含任何冲突的内容

我还检查了Tomcat8的lib文件夹中
elAPI.jar
文件中
javax.el.ExpressionFactory
类的源代码。方法签名为
public ELResolver getstreamlResolver()

这个问题发生在我将应用程序从tomcat 6.0.35迁移到tomcat 8.0.33之后。应用程序是使用jstl-1.2编写的

完整的堆栈跟踪是

16-May-2016 19:14:54.119 SEVERE [ajp-nio-11009-exec-4] org.apache.catalina.core.StandardWrapperValve.invoke Servlet.service() for servlet [spring] in context with path [/app] threw exception [Request processing failed; nested exception is org.apache.tiles.impl.CannotRenderException: org.apache.tiles.util.TilesIOException: JSPException including path '/WEB-INF/JSP/APP/display.jsp'.] with root cause
 java.lang.NoSuchMethodError: javax.el.ExpressionFactory.getStreamELResolver()Ljavax/el/ELResolver;
    at org.apache.jasper.el.ELContextImpl.<clinit>(ELContextImpl.java:87)
    at org.apache.jasper.compiler.Validator$ValidateVisitor.prepareExpression(Validator.java:1617)
    at org.apache.jasper.compiler.Validator$ValidateVisitor.visit(Validator.java:750)
    at org.apache.jasper.compiler.Node$ELExpression.accept(Node.java:950)
    at org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2376)
    at org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2428)
    at org.apache.jasper.compiler.Node$Visitor.visit(Node.java:2434)
    at org.apache.jasper.compiler.Node$Root.accept(Node.java:464)
    at org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2376)
    at org.apache.jasper.compiler.Validator.validateExDirectives(Validator.java:1853)
    at org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:217)
    at org.apache.jasper.compiler.Compiler.compile(Compiler.java:356)
    at org.apache.jasper.compiler.Compiler.compile(Compiler.java:336)
    at org.apache.jasper.compiler.Compiler.compile(Compiler.java:323)
    at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:585)
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:363)
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:396)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:340)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:292)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
    at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:720)
    at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:584)
    at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:523)
    at org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:935)
    at org.apache.jasper.runtime.PageContextImpl.doInclude(PageContextImpl.java:679)
    at org.apache.jasper.runtime.PageContextImpl.include(PageContextImpl.java:673)
    at org.apache.tiles.jsp.context.JspTilesRequestContext.include(JspTilesRequestContext.java:103)
    at org.apache.tiles.jsp.context.JspTilesRequestContext.dispatch(JspTilesRequestContext.java:96)
    at org.apache.tiles.renderer.impl.TemplateAttributeRenderer.write(TemplateAttributeRenderer.java:44)
    at org.apache.tiles.renderer.impl.AbstractBaseAttributeRenderer.render(AbstractBaseAttributeRenderer.java:106)
    at org.apache.tiles.renderer.impl.ChainedDelegateAttributeRenderer.write(ChainedDelegateAttributeRenderer.java:76)
    at org.apache.tiles.renderer.impl.AbstractBaseAttributeRenderer.render(AbstractBaseAttributeRenderer.java:106)
    at org.apache.tiles.impl.BasicTilesContainer.render(BasicTilesContainer.java:670)
    at org.apache.tiles.impl.BasicTilesContainer.render(BasicTilesContainer.java:336)
    at org.apache.tiles.template.InsertAttributeModel.renderAttribute(InsertAttributeModel.java:210)
    at org.apache.tiles.template.InsertAttributeModel.end(InsertAttributeModel.java:126)
    at org.apache.tiles.jsp.taglib.InsertAttributeTag.doTag(InsertAttributeTag.java:311)

... (truncated)
2016年5月16日19:14:54.119严重[ajp-nio-11009-exec-4]org.apache.catalina.core.StandardWrapperValve.invoke Servlet.service()在路径为[/app]的上下文中引发异常[请求处理失败;嵌套异常为org.apache.tiles.impl.CannotRenderException:org.apache.tiles.util.TilesIOException:jspeException,包括路径'/WEB-INF/JSP/APP/display.JSP'],并带有根本原因
java.lang.NoSuchMethodError:javax.el.ExpressionFactory.GetStreamlResolver()Ljavax/el/ELResolver;
位于org.apache.jasper.el.ELContextImpl.(ELContextImpl.java:87)
位于org.apache.jasper.compiler.Validator$ValidateVisitor.prepareExpression(Validator.java:1617)
位于org.apache.jasper.compiler.Validator$ValidateVisitor.visit(Validator.java:750)
位于org.apache.jasper.compiler.Node$ELExpression.accept(Node.java:950)
位于org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2376)
位于org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2428)
位于org.apache.jasper.compiler.Node$Visitor.visit(Node.java:2434)
位于org.apache.jasper.compiler.Node$Root.accept(Node.java:464)
位于org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2376)
位于org.apache.jasper.compiler.Validator.validateExDirectives(Validator.java:1853)
位于org.apache.jasper.compiler.compiler.generateJava(compiler.java:217)
位于org.apache.jasper.compiler.compiler.compile(compiler.java:356)
位于org.apache.jasper.compiler.compiler.compile(compiler.java:336)
位于org.apache.jasper.compiler.compiler.compile(compiler.java:323)
位于org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:585)
位于org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:363)
位于org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:396)
位于org.apache.jasper.servlet.JspServlet.service(JspServlet.java:340)
位于javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
位于org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:292)
位于org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
位于org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:720)
位于org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:584)
位于org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:523)
位于org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:935)
位于org.apache.jasper.runtime.PageContextImpl.doInclude(PageContextImpl.java:679)
位于org.apache.jasper.runtime.PageContextImpl.include(PageContextImpl.java:673)
位于org.apache.tiles.jsp.context.JspTilesRequestContext.include(JspTilesRequestContext.java:103)
位于org.apache.tiles.jsp.context.JspTilesRequestContext.dispatch(JspTilesRequestContext.java:96)
位于org.apache.tiles.renderer.impl.templateAttributenderer.write(templateAttributenderer.java:44)
位于org.apache.tiles.renderer.impl.AbstractBaseAttributeRenderer.render(AbstractBaseAttributeRenderer.java:106)
位于org.apache.tiles.renderer.impl.chainedDelegateAttributenderer.write(chainedDelegateAttributenderer.java:76)
位于org.apache.tiles.renderer.impl.AbstractBaseAttributeRenderer.render(AbstractBaseAttributeRenderer.java:106)
位于org.apache.tiles.impl.BasicTilesContainer.render(BasicTilesContainer.java:670)
位于org.apache.tiles.impl.BasicTilesContainer.render(BasicTilesContainer.java:336)
位于org.apache.tiles.template.InsertAttributeModel.renderAttribute(InsertAttributeModel.java:210)
位于org.apache.tiles.template.InsertAttributeModel.end(InsertAttributeModel.java:126)
位于org.apache.tiles.jsp.taglib.InsertAttributeTag.doTag(InsertAttributeTag.java:311)
…(截断)

如何解决此问题?

要解决类路径上存在的同一类的不同版本的此类问题,最好的方法是启用详细类加载,并查看是否实际从预期的jar文件加载该类

我们可以从命令行运行
java-verbose:class MyClassWithMain
。这将输出JVM中加载的所有类以及jar或从中加载的类路径上的任何类的名称。一旦找到问题的根源,就可以删除它。
要在tomcat中启用
verbose:class
,请参阅。

要解决类路径上存在的同一类的不同版本的此类问题,最好的方法是启用verbose类加载,并查看该类是否实际上是从预期的jar文件加载的

我们可以从命令行运行
java-verbose:class MyClassWithMain
。这将输出JVM中加载的所有类以及jar或从中加载的类路径上的任何类的名称。一旦找到问题的根源,就可以删除它。
要在tomcat中启用
verbose:class
,请参阅。

要清楚,当您说您检查了web应用程序的web-INF/lib并且“它不包含任何冲突的内容”…您的意思是其中没有包含类
javax.el.ExpressionFactory
?事实上,异常表明