MyFaces — @PostConstruct в абстрактном классе

Я пытаюсь выполнить аннотированный метод PostConstruct, который находится в абстрактном классе,

    public abstract class AbstractTest {

            @PostConstruct
            public void init() {

            }
    }

    @ManagedBean
    @SessionScoped
    public Test extends AbstractTest {

    }

но когда тест создается, метод инициализации не вызывается, это ошибка? неподдерживаемая функция? неверный код?

на Мохарре 2.1.6 работает

MyFaces 2.1.6, Glassfish 3.1.2-b23


person holek    schedule 27.02.2012    source источник


Ответы (1)


Java EE, раздел 5.2.3

Аннотации ресурсов могут появляться в любом из перечисленных выше классов или в любом суперклассе любого из перечисленных выше классов. Аннотация ресурса для любого класса в иерархии наследования определяет ресурс, необходимый компоненту приложения.

Звучит как ошибка для меня! Очевидно, в Мохарре была такая же ошибка в какой-то момент времени, и она была исправлена: issue 800.

person Jonathan S. Fisher    schedule 27.02.2012
comment
Я создал задачу MYFACES-3483, но она была отмечена как недействительная: это старый вопрос. Аннотации PostConstruct и PreDestroy сканируются только для объявленных методов в классе Test, но не для унаследованных методов. MyFaces ничего не может сделать, потому что это ответственность контейнера. Я закрою эту тему как недействительную. - person holek; 28.02.2012
comment
Очень странно. Если это действительно ответственность контейнера, какой контейнер и версию вы используете? - person Jonathan S. Fisher; 28.02.2012
comment
Я использую Glassfish 3.1.2-b23, но когда я использую Mojarra 2.1.6 (в комплекте с Glassfish), он работает, поэтому, возможно, эта Mojarra немного модифицирована. - person holek; 28.02.2012
comment
Так зачем использовать myfaces, если вы используете стеклянную рыбу? просто любопытно - person Jonathan S. Fisher; 28.02.2012
comment
В Mojarra 2.1.6 есть ошибка, которая влияет на команду Primefaces в таблице данных (она отображает недопустимое значение обновления) issue 3544 ... и я хочу попробовать MyFaces ;) - person holek; 28.02.2012
comment
готача... зная PrimeFaces, он внедрит 50 новых компонентов, прежде чем исправит какие-либо ошибки - person Jonathan S. Fisher; 28.02.2012
comment
@exabrial Согласен; +1 для развлечения. Кстати, аналогичная стратегия плохо кончилась для Netscape Navigator... - person 8bitjunkie; 08.07.2013