javax.el.PropertyNotFoundException:在类型org.hibernate.collection.internal.PersistentSet上找不到属性'toArray'

时间:2013-04-24 15:20:17

标签: java jsf-2 el

我正在使用hashset.toArray()[x]在jsf视图中显示一个元素,这在我的机器上工作正常。 但是,当我将其移至测试服务器时,会抛出上述错误。

两台机器都运行tomcat 7.

导致此错误的原因是什么?

1 个答案:

答案 0 :(得分:1)

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

因此,如果您将Web应用程序部署到与Servlet 3.0兼容的web.xml根声明的Servlet 3.0兼容容器中,那么它将正常工作。但是,如果您将webapp部署到旧版本的容器,或者使用web.xml来指示旧版本,或者在webapp的/WEB-INF/lib中删除了旧版本的任意特定于容器的JAR文件,或者甚至服务器自己的/lib,那么此功能将无效。

如果你绝对肯定测试服务器正在运行Tomcat 7而不是Tomcat 6,那么这只能意味着web.xml已被更改以指示旧版本,或者你的webapp或服务器的/lib遍布任意特定于容器的JAR文件,例如jsp-api.jarel-api.jar等,这些文件只会与容器自己的库冲突(这通常由无知的启动程序按顺序完成解决他们在IDE中遇到的编译错误;应该已经解决了differently)。