EJB не внедряется в LocalBean без сохранения состояния с использованием @EJB

У меня есть сессионный компонент без сохранения состояния, который я хочу внедрить в другой сессионный компонент без сохранения состояния (LocalBean без интерфейса), используя @EJB:

@Path("/user")
@LocalBean
@Stateless(mappedName = "ejb/UserServiceRest")
public class UserServiceRest extends BaseServiceFacadeRest<User, String> {

    @EJB(mappedName = "ejb/userService")
    private UserServiceBeanLocal userService;

    public UserServiceRest() {}

public getService() {return userService;}

    // ... etc

Вводимый боб:

@Stateless(mappedName="ejb/UserService")
public class UserServiceBean extends BaseServiceBean<User, String> implements UserServiceBeanRemote, UserServiceBeanLocal {

        public UserServiceBean() {}

// ... etc

теперь я использую первый компонент в качестве конечной точки REST для веб-приложения на основе Джерси JAX-RS:

@ApplicationPath("/rest")
public class MyPortalApplication extends Application {
    @Override
    public Set<Class<?>> getClasses() {
        final Set<Class<?>> classes = new HashSet<Class<?>>();
        // register root resource
        classes.add(UserServiceRest.class);
        return classes;
    }      
}

после этого я нажал 127.0.0.1:8080/myapp/rest/user

UserServiceRest может обработать входящий запрос, но поле userService не создается, @EJB не внедряет экземпляр UserServiceBeanLocal, поэтому userService имеет значение null.

Я хотел бы знать, чего не хватает, поскольку я внедряю его в другой EJB, он должен работать, как и ожидалось.


person guilhebl    schedule 27.03.2014    source источник
comment
Когда вы определяете сопоставленное имя, в ejb/UserService есть заглавная буква U, но когда вы его используете, есть строчная буква «u».   -  person Mareen    schedule 02.04.2014
comment
Я удалил атрибут (mappedName=ejb/UserService) выше и попытался использовать аннотации EJB или Inject, оба терпят неудачу, кажется, у Glassfish есть некоторые ограничения при интеграции Джерси и CDI в соответствии с вопросом: stackoverflow .com/questions/18963627/   -  person guilhebl    schedule 04.04.2014