for:каждый цикл в сервере приложений IBM Webphere 6.1

Я разработал веб-приложение и создал военный файл, используя Netbeans 6.9. Я широко использовал возможности Java 5 как в файлах jsp, так и в файлах java. После развертывания при просмотре страницы jsp, содержащей цикл for:each, я получаю сообщение об ошибке, в котором говорится, что

'for each' statements are only available if source level is 5.0

Я читал, что WAS6.1 поддерживает функции Java5. Также проверил версию jdk в java/bin, это IBM jdk 1.5.

Я также попробовал инструкции, приведенные в этой страницы. Я сомневаюсь, что нужно выполнить какие-либо настройки при создании файла war, чтобы сделать развертывание совместимым с Java 5. Или нужно выполнить какие-либо настройки уровня сервера/приложения в консоли IBM WAS?


person WarFox    schedule 03.05.2011    source источник


Ответы (1)


Как вы обнаружили, проблема заключается в движок WAS 6.1 JSP, основанный на JSP 2.0 (предназначен для Java 1.3). Я предполагаю, что вы нашли правильный параметр:

jdkSourceLevel

Этот параметр ядра JSP введен в WebSphere Application Server версии 6.1 для поддержки JDK 5. Этот параметр следует использовать вместо параметра compileWithAssert, хотя compile WithAssert по-прежнему работает в версии 6.1. Значение по умолчанию для этого параметра равно 13. Этот параметр требует повторной генерации исходного кода Java. Ниже приведены значения параметров jdkSourceLevel:

  • 13 (по умолчанию) — это значение отключает все новые языковые функции JDK 1.4 и JDK 5.0.
  • 14 – это значение разрешает использование средства утверждения и отключает все новые языковые функции JDK 5.0.
  • 15 — это значение позволит использовать средство утверждения и все новые языковые функции JDK 5.0.

Я предполагаю, что вы установили это в нужное место с правильным регистром и перезапустил сервер. Я бы также проверил, что ваш файл web.xml объявляет схему Servlet 2.4 на случай, если это повлияет на механизм JSP. В противном случае проверьте сайт поддержки на наличие исправлений.

Вы должны иметь возможность прекомпилировать свои JSP с помощью JspBatchCompiler или Задание Ant, если ничего не помогает.


Я бы спросил, почему вы вообще используете скриптлеты, но это другой разговор.

person McDowell    schedule 03.05.2011
comment
Спасибо за инструкции. Я смогу проверить это только в следующем развертывании. Даст вам обратную связь после этого. - person WarFox; 04.05.2011