Dependency injection 组件上的EJB调用失败

Dependency injection 组件上的EJB调用失败,dependency-injection,ejb,java-ee-6,Dependency Injection,Ejb,Java Ee 6,将UserRepository接口插入控制器时发生以下异常: EJB Invocation failed on component UserRepositoryMock for method public abstract java.util.List com.test.repository.IRepository.all(): javax.ejb.EJBTransactionRolledbackException: WFLYEE0042: Failed to construct compone

将UserRepository接口插入控制器时发生以下异常:

EJB Invocation failed on component UserRepositoryMock for method public abstract java.util.List com.test.repository.IRepository.all(): javax.ejb.EJBTransactionRolledbackException: WFLYEE0042: Failed to construct component instance
我不确定,也许继承层次可能是个问题:

IRepository由IUserRepository实现。然后我有一个抽象类AbstractRepository,它也实现了IRepository。 UserRepositoryMock扩展了AbstractRepository并实现了IUserRepository接口

代码:

@Singleton
@Alternative
public class UserRepositoryMock extends AbstractRepository<IUser> implements IUserRepository {
@EJB
private IUserFactory userFactory;
public UserRepositoryMock(){
    userFactory.generateFirstUser()
}
}
@Singleton
@另类
公共类UserRepositoryMock扩展了AbstractRepository实现了IUserRepository{
@EJB
私人工厂;
公共用户repositorymock(){
userFactory.generateFirstUser()
}
}
抽象存储库

@Singleton
public abstract class AbstractRepository<T extends IBO> implements IRepository<T> {
@Override
public List<T> all(){....}
}
@Singleton
公共抽象类AbstractRepository实现了IRepository{
@凌驾
public List all(){….}
}
IUSER存储库:

public interface IUserRepository extends IRepository<IUser>{
...
}
公共接口IUserRepository扩展了IRepository{
...
}

其他注射效果很好,有什么想法吗?

我建议改变这一点:

public UserRepositoryMock(){
    userFactory.generateFirstUser();
}
例如:

@PostConstruct
public void setup() {
    userFactory.generateFirstUser();
}