Конфигурационные аннотации JSF не обработаны - PullRequest
0 голосов
/ 16 июня 2011

Я запускаю приложение JSF 2 на JBoss AS 6.

Каким-то образом аннотации, такие как @FacesComponent или @FacesValidator и т. Д., Не обрабатываются контейнером. Если я аннотирую Бин с помощью @FacesValidator("fooValidator") и пытаюсь установить validatorId для какого-либо компонента на "fooValidator", я получаю:

Caused by: javax.faces.FacesException: Expression Error: Named Object: fooValidator not found.
at com.sun.faces.application.ApplicationImpl.createValidator(ApplicationImpl.java:1530) [:2.0.3-]
...

Однако, если я добавлю

    <validator>
      <validator-id>fooValidator</validator-id>
      <validator-class>foo.MyClass</validator-class>
    </validator>

На мой faces-config.xml все работает как положено. То же самое касается компонентов и преобразователей.

Есть идеи, почему аннотации не обрабатываются? У меня нет идей ...

Заранее спасибо ...

Ответы [ 2 ]

3 голосов
/ 17 июня 2011

Понял.Это очень похоже на это: Почему JSF 2.0 RI (Mojarra) не сканирует аннотации моего класса?

Мой проект использует тощую войну , поэтомупапка lib на войне пуста / не существует.И что еще хуже, бобы-контролеры находятся не на войне, а в отдельной банке.Поскольку этот jar отсутствует на войне, процессор аннотаций jsf не сканирует его.

Полагаю, я реструктурирую проект и, скорее всего, выкину тощую войну.Это должно исправить это.

0 голосов
/ 16 июня 2011

Итак, вы использовали @Named вместо @ManagedBean в управляемых бинах?:)

Это может произойти, если не объявлено, что faces-config.xml соответствует спецификации JSF 2.0.Убедитесь, что объявление root выглядит так:

<?xml version="1.0" encoding="UTF-8"?>
<faces-config
    xmlns="http://java.sun.com/xml/ns/javaee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_2_0.xsd"
    version="2.0">

    <!-- config here -->

</faces-config>
...