Найдено несколько версий обязательного класса javax.faces.FactoryFinder - PullRequest
4 голосов
/ 26 декабря 2010

Я начал на JSF2.0.Я последовал за учебником без проблем, и все работало нормально!Я использовал Eclipse Helios.Но я заметил кое-что, чего не могу понять.В учебнике сказано добавить Project Facet для JSF 2. Я такого не делал, и все работало нормально.Таким образом, чтобы точно следовать руководству, я сделал:

Щелкните правой кнопкой мыши Project -> Properties -> Project Facets

И флажок фасета JavaServer Faces не был отмечен.Я предполагаю, что это то, что учебник подразумевает под Project Facet.Я нажал на него и появилась ссылка

Необходима дальнейшая настройка

.Я перешел по ссылке на диалоговое окно «Возможности JSF» («Изменить многогранный проект»), в качестве пользовательской библиотеки я выбрал свою библиотеку JSF (то есть MyFaces), но получил сообщение error :

Найдено несколько версий обязательного класса javax.faces.FactoryFinder.

Что это за ошибка?Не могу ли я добавить фасет проекта после создания моего проекта?И для чего мне нужен аспект проекта?Мой (тривиальный) код указывает, что JSF работает нормально, так что для чего полезен проект Facet?

Ответы [ 3 ]

3 голосов
/ 26 декабря 2010

Из справки Eclipse :

Фасеты определяют характеристики и требования для проектов Java EE и используются как часть конфигурации времени выполнения.

Когда выдобавить фасет к проекту, этот проект настроен для выполнения определенной задачи, выполнения определенных требований или имеет определенные характеристики.Например, фасет EAR настраивает проект для функционирования в качестве приложения предприятия, добавляя дескриптор развертывания и устанавливая classpath проекта.

В случае JSF-фасета :

При установке фасета JSF доступны следующие функции:

  • Поддержка конфигурации библиотеки JSF
  • Управление конфигурацией приложения
  • Семантическая проверка JSP Source Page и поддержка содержимого для большинства значений атрибутов библиотеки тегов HTML JSF Core и JSF с использованием языка выражений (EL) или без него.
  • Поддержка "Запуск на сервере" страницы JSP JSF

В случае этой ошибки:

Найдено несколько версий необходимого класса javax.faces.FactoryFinder.

Похожеинструментальное средство обнаружило несколько копий основного API JSF в пути к классам проекта. JSF имеет некоторые допуски для этого и исторически поддерживал запуск разных версий в разных контекстах загрузчика классов, то есть вы можете поместить одну в WAR, а другую в контейнер. Использование диалога Open Type ( CTRL) + SHIFT + T ) и поиск javax.faces.FactoryFinder должен помочь вам найти банку виновника.

2 голосов
/ 26 декабря 2010

Добавление JSF nature / facet в ваш проект добавляет такие возможности, как завершение кода, добавление визуальных компонентов jsf в редактор веб-страниц и т. Д. В ваш проект.Проверьте ваш патч сборки и посмотрите, сколько там jsf api jar.Я предполагаю, что эта ошибка в IDE, а не в работающем приложении.

0 голосов
/ 28 декабря 2010

Фасет JSF поможет вам настроить свойства проекта с помощью библиотек JSF. Он также включает в себя ряд специфичных для JSF валидаций и инструментов из проекта JSF Tools. Хотя, конечно, можно разработать приложение JSF без использования инструментов JSF, как вы это делали, вы можете быть более продуктивными, если используете эти инструменты.

Если вы хотите опробовать инструменты JSF в своем руководстве, начните с создания нового веб-проекта с фасетом JSF. Затем пропустите те части вашего руководства, в которых рассказывается о настройке библиотек или создании дескрипторов.

...