2014-01-05 10 views
1

У меня есть вопрос о предупреждении Eclipse и CDI @Inject.Eclipse & неудовлетворительные или неоднозначные зависимости для точки впрыска:

У меня есть код для проверки электронной почты (КДИ боб):

@Named(value = "emailValidator") 
@ApplicationScoped 
@FacesValidator("emailValidator") 
public class EmailValidator extends AbstractCDIBean<EmailValidator> implements Validator { 
    /** 
    * 
    */ 
    private static final long serialVersionUID = 1L; 

    @Inject 
    private UserLocal     userLocal; 
    ... 

Это работает, но Eclipse, говорит:

Нет боб не имеет право на инъекции в точке инъекции [JSR- 299 §5.2.1] (Неудовлетворительные или неоднозначные зависимости для точки впрыска).

Что я делаю неправильно? Eclipse - это последняя версия.

private UserLocal userLocal; 

Класс локальные интерфейсы для вызова EJB бобы (public interface UserLocal{ methods...})

ответ

2

Вы хотите заменить @Inject на @EJB или вы хотите положить @Dependent простор вашей реализации EJB.

Причина заключается в том, что @Inject хочет использовать только бобовые объекты.

Для справок в будущем используйте these troubleshooting tips

+1

Это хороший ответ. В примерах кухни jboss обычно есть компонент package.util.Resources, и он не аннотируется с областью. Я добавил @Dependent, чтобы исправить предупреждения и проблемы с развертыванием. –

Смежные вопросы