Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Dependency injection 组件上的EJB调用失败_Dependency Injection_Ejb_Java Ee 6 - Fatal编程技术网

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();
}