1


我遇到了 TomEE 的“javaee-api-6.0-5.jar”使用的“javax.el.CompositeELResolver”的问题。

版本信息和 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


在“调用”方法中,我得到一个空指针异常,因为 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

多线程是否可能导致我的问题?

4

2 回答 2

1

解决了。

TomEE 使用http://mvnrepository.com/artifact/org.apache.geronimo.specs/geronimo-el_2.2_spec的 1.0.2 版本

该错误已在 1.0.4 版本中修复

于 2013-06-13T06:51:55.797 回答
0

基于固定的 geronimo el spec 1.0.4 版本,很容易修复 javaee-api-6.0-5.jar 包。

只需从这里下载最新的 jar 文件http://mvnrepository.com/artifact/org.apache.geronimo.specs/geronimo-el_2.2_spec/1.0.4

并使用来自 geronimo el 2.2 spec 1.0.4 jar 文件的文件更改 javaee-api-6.0-5.jar 中的 javax.el 包

我在linux下使用mc浏览内容并从一个复制到另一个。我测试并且工作完美。

当然你也可以用 jar utils 来做到这一点:-)

奇怪的是,这个问题在 32 位 windows 环境中不存在,而只在 64 位 linux 环境中存在。无论如何,修复解决了问题。

希望很快会有 javaee-api-6.0-6.jar :-)

于 2014-01-29T07:34:17.050 回答