Я разрабатываю приложение REST с помощью Glassfish 4.0.GlassFish 4 + JAX-RS Фильтр с @EJB
В классах ресурсов я могу получить инъекцию для работы, создав класс @Stateless и впрыскивая через @EJB (введенный класс - это безгосударственный EJB).
Однако этот подход не работает в JAX-RS-фильтре. Я не могу заставить инъекцию работать вообще.
См код ниже:
@Provider
public class UpdateFilter implements ContainerRequestFilter {
@EJB
private MyBeanInterface doStuffBean;
@Override
public void filter(ContainerRequestContext requestContext) {
...
}
}
doStuffBean всегда нуль.
Любые предложения?
@Inject не работает. Исправлено исключение: ** UnsatisfiedDependencyException: для инъекции не было объекта ... **. – bafitor
Это потому, что ваш класс не управляется. Я не уверен, что это может сделать этот провайдер ManagedBean, поэтому вам, вероятно, придется создать своего собственного производителя, который будет искать EJB, а затем вы можете вводить куда угодно (есть много статей, показывающих, как это сделать), или вы может просто выполнить поиск в этом классе. – ZeusSelerim