Я использую MyFaces Apache 2.0.3 JSF, WAS 8.0.0.10.
В настоящее время я пытаюсь внедрить @ViewScope
cdi bean, @ViewScope
в JSF 2.0, предоставленный библиотекой OmniFaces. Но получаю ошибку: WebBeans context with scope type annotation @ViewScoped does not exist within current thread
. Когда я пытаюсь внедрить @SessionScope
cdi bean, все работает нормально.
Код моего ресурса JAX-RS:
@RequestScoped
@Path("/events")
public class CalendarResource implements Serializable {
@Inject
private CalendarBean calendarBean;
@Inject
private PropertiesBean propertiesBean;
@GET
@Produces("text/plain; charset=utf-8")
public Response getEvents(@QueryParam("calendarId") String calendarId,
@QueryParam("start") String start,
@QueryParam("end") String end,
@Context SecurityContext securityContext,
@Context HttpServletRequest req
) {
FullCalendar selectedCalendar = calendarBean.getFullCalendar();
System.out.println(calendarId + " " + start + " " + end + " " + propertiesBean.getUser().getName());
return null;
}
Код моего компонента CDI:
@Named
@ViewScoped
public class CalendarBean implements Serializable {
@EJB
private CalendarEJB calendarEJB;
@Inject
private PropertiesBean propertiesBean;
@PostConstruct
public void init(){
...
}
...
}
Что я делаю неправильно? Как только я узнаю, я смогу внедрить более широкий охват в узкий охват. Спасибо.
ОБНОВЛЕНИЕ: когда я изменил @ViewScope
на @SessionScoped
, все стало работать. Может ли быть проблема с OmniFaces?