博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
解析el表达式出错
阅读量:6709 次
发布时间:2019-06-25

本文共 1086 字,大约阅读时间需要 3 分钟。

hot3.png

部分功能页面没有进行前后端分离,使用的还是jsp技术。

容器本身是有包进行解析el的,如果在项目里引入了 javax.el 包会导致解析el表达式出错,具体报错如下:

2019-01-23 13:32:35,134 ERROR [org.apache.catalina.core.ContainerBase] Servlet.service() for servlet jsp threw exceptionjava.lang.LinkageError: javax/el/ExpressionFactory        at org.apache.jsp.xxx

在jsp中使用了类似于这种el表达式的时候就会出现上面的报错 cxxxx.jsp

jsp编译之后生产的java文件大致是在

work/xxx/localhost/_/org/apache/jsp/xxx

容器不一样目录也会有差异。

jsp编译成的java为 cxxxx_jsp.java

_jspx_th_c_005fforEach_005f0.setItems(new org.apache.jasper.el.JspValueExpression("/WEB-INF/mxxxx/xxx/cxxxx.jsp(55,5) '${listAct}'",_el_expressionfactory.createValueExpression(_jspx_page_context.getELContext(),"${listAct}",java.lang.Object.class)).getValue(_jspx_page_context.getELContext()));

出现的原因: 项目A引用了项目B,项目B引用了项目C,项目C引用了项目D 项目D引入了 javax.el这个包,导致这一层依赖传导到了A项目,A项目有一些非常老的功能还存在jsp页面,就发生了这个报错。 而因为是jsp报错,在应用本身的日志文件是没有报错日志的,还只能在容器本身的日志去找。 起先是以为表达式或者传到jsp的对象存在问题,因为报错日志不明显,只能大致知道是el表达式有问题,jsp只在大学的书本上用过,工作之后从velocity到freemarker和thymeleaf等等,就是没有用过jsp。。。

最后对比了前后的war包发现多了一个javax.el的包在应用的lib内,找到依赖关系,这才破案。

转载于:https://my.oschina.net/110NotFound/blog/3005003

你可能感兴趣的文章
GitHub宣布推出Electron 1.0和Devtron,并将提供无限制的私有代码库
查看>>
人工智能白热化,运维脱帽“背锅侠”
查看>>
Android中使PopupWindow显示在指定控件的上下左右!
查看>>
html中ul标签的优化
查看>>
Kurento安装与入门05——One to many video call
查看>>
[deviceone开发]-cnodejs论坛移动端App
查看>>
智能指针shared_ptr(effective modern c++笔记)
查看>>
Failed to validate a newly established connection异常
查看>>
关联对象 AssociatedObject 完全解析
查看>>
Windows下80端口被pid为4的System进程占用解决方法
查看>>
POST 后台404错误
查看>>
Ubuntu 解压zip文件名乱码问题解决
查看>>
动态规划
查看>>
Hibernate的延迟加载
查看>>
IE中input标签密码框与文本框宽度不一样问题
查看>>
【系统架构师修炼之道】(10):绪论——系统架构师的定义与职业素质
查看>>
Uber 开源地理可视化工具 Ketoper.gl,加速数据处理
查看>>
NSDate格式化小例
查看>>
运维不容错过的4个关键指标!
查看>>
spring 基础
查看>>