2013-04-24 2 views
1

Я использую hashset.toArray()[x] для отображения элемента в представлении jsf, и это отлично работает на моей машине. Но когда я переношу это на тестовый сервер, вызывается вышеуказанная ошибка.javax.el.PropertyNotFoundException: свойство 'toArray' не найдено по типу org.hibernate.collection.internal.PersistentSet

Обе машины работают 7.

кот

что вызывает эту ошибку?

+0

версия Hibernate на локальном и тестовом сервере? Также версия JSF на локальном и в тесте? –

+0

Странно, потому что сообщение верное. «PersistentSet» имеет * метод * 'toArray', а не свойство *. EL фактически пытается получить доступ к свойству 'getToArray()', и результат является исключением. Пожалуйста, покажите нам код, который работает на вашем компьютере (jsf + bean). Использование его в теге дисплея не должно фактически работать AFAIK. – Gamb

ответ

1

Способность ссылаться на произвольные не связанные с собственностью методы в EL представлена ​​в EL версии 2.2, которая идет рука об руку с Servlet 3.0. Эта функция не существовала в более старых версиях, таких как Servlet 2.5/EL 2.1.

Итак, если вы разворачиваете ваш webapp в контейнер, совместимый с Servlet 3.0, с корневым объявлением web.xml, совместимым с Servlet 3.0, тогда он будет работать нормально. Однако, если вы развертываете свой webapp в контейнере более старой версии или с web.xml, который диктует более старую версию, или удалил произвольные файлы JAR с конкретным контейнером более старой версии внутривеб-сервера или даже собственного сервера /lib, тогда эта функция не будет работать.

При условии, что вы абсолютно уверены, что на тестовом сервере запущен Tomcat 7 и, следовательно, не Tomcat 6 или около того, это может означать, что web.xml был изменен, чтобы диктовать более старую версию или что ваш webapp или сервер /lib усеяны произвольными файлами JAR, специфичными для контейнера, такими как jsp-api.jar, el-api.jar и т. Д., Которые могут вступать в конфликт с собственными библиотеками контейнера (это часто делается неосведомленными стартерами, чтобы обходить ошибки компиляции, с которыми они сталкиваются в своей среде IDE, которые должны были быть решены differently).

+0

Спасибо Balusc за подробный ответ – Sagar

Смежные вопросы