я реализовал CDI Bean, который наблюдая события из другого боба:Почему управляемый компонент CDI в faces-config.xml не зарегистрирован как обервер?
@SessionScoped
public class FixedItemController implements Serializable {
....
public void onWorkflowEvent(@Observes WorkflowEvent workflowEvent) throws AccessDeniedException {
logger.info("evaluate event...");
....
}
....
}
Это прекрасно работает до тех пор, как я использую компонент в странице JSF с именем по умолчанию 'fixedItemController.
Но если я объявляю еще один экземпляр этого бина в лицах-config.xml, как это:
<managed-bean>
<managed-bean-name>myOrderItemController</managed-bean-name>
<managed-bean-class>org.imixs.marty.workflow.FixedItemController</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
<managed-property>
<property-name>childItemProperty</property-name>
<property-class>java.lang.String</property-class>
<value>_orderItems</value>
</managed-property>
</managed-bean>
второй экземпляр (myOrderItemController) не регистрируются автоматически в качестве наблюдателя для моего WorkflowEvent.
Что мне делать, чтобы гарантировать, что мой второй экземпляр, объявленный лицами-config.xml, будет немедленно создан и зарегистрирован в качестве наблюдателя для моего рабочего элемента?
Спасибо, что вы имеете в виду, что мне нужно работать с beans.xml дескриптором вместо faces-config.xml? – Ralph
Зависит от конкретных функциональных требований. Обычно вы используете исключительно аннотации/квалификаторы/производители и оставляете beans.xml для чего это. – BalusC