我遇到了“javax.el.CompositeELResolver”的问题,这是由TomEE的“javaee-api-6.0-5.jar”使用的。
版本信息和svn-repository在这里:
http://mvnrepository.com/artifact/org.apache.geronimo.specs/geronimo-el_2.2_spec/1.0.2
类CompositeELResolver的来源:
http://svn.apache.org/viewvc/geronimo/specs/tags/geronimo-el_2.2_spec-1.0.2/src/main/java/javax/el/CompositeELResolver.java?view=log
在“invoke”方法中,我得到一个空指针异常,因为for循环遍历整个解析器数组,该数组的字段值为“null”。我认为这是不可避免的,因为“add”方法在需要时将数组大小加倍但不初始化任何值。在使用它之前,是否应该检查“invoke”方法中的解析器是否为“null”?
为了进行比较,我使用另一个javax.el实现运行我的应用程序并且它正常工作:
<dependency>
<groupId>javax.el</groupId>
<artifactId>el-api</artifactId>
<version>2.2</version>
</dependency>
我的假设错了吗?
我在这里发现了类似的问题: https://issues.apache.org/bugzilla/show_bug.cgi?id=50293
多线程是否可能导致我的问题?
答案 0 :(得分:1)
解决。
TomEE使用http://mvnrepository.com/artifact/org.apache.geronimo.specs/geronimo-el_2.2_spec
版本1.0.2该错误已在1.0.4版本中修复
答案 1 :(得分:0)
基于固定的geronimo el spec 1.0.4版本,很容易修复javaee-api-6.0-5.jar包。
只需从此处http://mvnrepository.com/artifact/org.apache.geronimo.specs/geronimo-el_2.2_spec/1.0.4
下载最新的jar文件并更改javaee-api-6.0-5.jar中的javax.el包,文件来自geronimo el 2.2 spec 1.0.4 jar文件
我在linux下使用mc浏览内容并从一个复制到另一个。我测试并且完美无缺。
当然你也可以使用jar utils: - )
对我来说,这个问题在32位Windows环境中不存在但仅在64位Linux环境中存在,这很奇怪。无论如何修复解决了这个问题。
希望很快会有一个javaee-api-6.0-6.jar: - )