Нет, это невозможно. Функция @ManagedProperty
работает только внутри классов @ManagedBean
(только с JSF-управляемыми компонентами). Вы можете использовать только @EJB
или @Inject
, чтобы ввести другой EJB или управляемый CDI компонент (класс @Named
).
Тем не менее, конструктивно не имеет смысла вводить внешний класс, например, JSF или управляемый CDI компонент в классе бизнес-услуг, например EJB. EJB должен быть сконструирован таким образом, чтобы без изменений можно было повторно использовать совершенно другой интерфейс, например, веб-сервис JAX-RS или даже простой ванильный сервлет. EJB не должен иметь никаких javax.faces.*
импорта / зависимостей (например, он не должен иметь никаких javax.ws.rs.*
или javax.servlet.*
).
Если вы собираетесь передавать данные из управляемого компонента JSF к EJB, то просто передайте его как аргумент метода. Такие данные обычно присущи JPA @Entity
или по меньшей мере ключевому слову ID /, который возвращает объект.