1

hashset.toArray()[x]用来在 jsf 视图中显示一个元素,这在我的机器上运行良好。但是当我将其移至测试服务器时,会引发上述错误。

两台机器都运行tomcat 7。

是什么导致了这个错误?

4

1 回答 1

1

EL 2.2 版引入了在 EL 中调用任意非属性相关方法的能力,它与 Servlet 3.0 齐头并进。此功能在 Servlet 2.5 / EL 2.1 等旧版本中不存在。

因此,如果您将 webapp 部署到具有 Servlet 3.0 兼容web.xml根声明的 Servlet 3.0 兼容容器,那么它将正常工作。但是,如果您将 webapp 部署到旧版本的容器中,或者使用web.xml指示旧版本的容器,或者将旧版本的任意容器特定 JAR 文件放在 webapp/WEB-INF/lib甚至服务器自己的容器中/lib,那么此功能不会工作。

如果您绝对肯定测试服务器正在运行 Tomcat 7 而不是 Tomcat 6 左右,那么这只能意味着web.xml已更改为指示旧版本,或者您的 webapp 或服务器上/lib到处都是任意容器- 特定的 JAR 文件,例如jsp-api.jar,el-api.jar等,它们只会与容器自己的库冲突(这通常由无知的初学者完成,以解决他们在 IDE 中面临的编译错误;应该以不同的方式解决)。

于 2013-04-24T16:48:51.930 回答