У нас есть приложение JSF 2.0, работающее под Glassfish 3.1.1, которое было перенесено из JSF 1. Это означает, что у меня есть файл face-config.xml, говорящий
<managed-bean>
<managed-bean-name>OnlineBeanHandler</managed-bean-name>
<managed-bean-class>X.jsf.OnlineBeanHandler</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
...
</managed-bean>
, который был сделан, чтобы позволитьиспользуя #{OnlineBeanHandler}
на страницах моего лица.Работает хорошо.Я также могу использовать @ javax.inject.Inject внутри OnlineBeanHandler, чтобы получить управляемый компонент CDI, для которого я затем могу предоставить альтернативу, пометив его @ javax.enterprise.inject.Alternative и включив его в beans.xml.,Работает хорошо.
Теперь мне нужно, чтобы тот же механизм работал для самого OnlineBeanHandler - т.е. чтобы код обработки <managed-bean>
вызывал мой альтернативный класс вместо явно названного, но при выполнении тех же шагов явсе еще получаю мой базовый класс вместо моей альтернативы.
Можно ли это сделать напрямую, и если да, то как?
Видимо, этот механизм там не работает.В текущей ситуации мы могли бы создать еще один файл face-config.xml и просто перезаписать его там проектами.Затем каждый проект предоставляет замену face-config.xml.