Где должен находиться файл beans.xml? - PullRequest
24 голосов
/ 24 января 2012

Я только что обновился до NetBeans 7.1 с 7.0.При открытии управляемого компонента JSF он «услужливо» сказал мне, что не может найти мой файл beans.xml, поэтому мне бы хотелось, чтобы он был создан для меня.Я знал, что у меня есть файл beans.xml под WEB-INF, но я все равно сказал да, чтобы увидеть, что произошло.Для меня в META-INF был создан новый файл beans.xml.

Подумав, что я допустил ошибку, я удалил файл в WEB-INF только для того, чтобы приложение не запускалось при запуске.Помещение beans.xml обратно в WEB-INF решило эту проблему.Кажется, на этой странице оба места действительны: http://seamframework.org/Documentation/WhatIsBeansxmlAndWhyDoINeedIt

Итак, вопрос в том, какая папка beans.xml должна находиться в WEB-INF или META-INF?

IЯ использую GlassFish 3.1.1 и Java 7

1 Ответ

39 голосов
/ 12 февраля 2012

Размещение bean-файла beans.xml в каталоге WEB-INF - это нормально, так как, скорее всего, bean-компоненты находятся в классах WEB-INF.

Правильное место для beans.xml зависит от типа архива и расположения классов бинов.

В спецификации это объясняется следующим образом:

Классы компонентов с включенными компонентами должны быть развернуты в архивах компонентов.

  • Библиотека JAR, EJB-файл, JAR-файл приложения-клиента или RAR-архив является архивом компонентов, если в каталоге META-INF содержится файл с именем beans.xml.
  • Каталог войны WEB-INF / classes является архивом компонентов, если в каталоге войны WEB-INF есть файл с именем beans.xml.
  • Каталог в classpath JVM является архивом bean-компонентов, если в каталоге META-INF содержится файл с именем beans.xml.
...