组件上的 EJB 调用失败
EJB Invocation failed on component
当我将 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 实现。然后我有一个抽象 class AbstractRepository,它也实现了 IRepository。
UserRepositoryMock 扩展了 AbstractRepository 并实现了 IUserRepository 接口。
在代码中:
@Singleton
@Alternative
public class UserRepositoryMock extends AbstractRepository<IUser> implements IUserRepository {
@EJB
private IUserFactory userFactory;
public UserRepositoryMock(){
userFactory.generateFirstUser()
}
}
抽象知识库
@Singleton
public abstract class AbstractRepository<T extends IBO> implements IRepository<T> {
@Override
public List<T> all(){....}
}
IUserRepository:
public interface IUserRepository extends IRepository<IUser>{
...
}
其他注射工作正常,有什么想法吗?
我建议更改此设置:
public UserRepositoryMock(){
userFactory.generateFirstUser();
}
类似于:
@PostConstruct
public void setup() {
userFactory.generateFirstUser();
}
当我将 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 实现。然后我有一个抽象 class AbstractRepository,它也实现了 IRepository。 UserRepositoryMock 扩展了 AbstractRepository 并实现了 IUserRepository 接口。
在代码中:
@Singleton
@Alternative
public class UserRepositoryMock extends AbstractRepository<IUser> implements IUserRepository {
@EJB
private IUserFactory userFactory;
public UserRepositoryMock(){
userFactory.generateFirstUser()
}
}
抽象知识库
@Singleton
public abstract class AbstractRepository<T extends IBO> implements IRepository<T> {
@Override
public List<T> all(){....}
}
IUserRepository:
public interface IUserRepository extends IRepository<IUser>{
...
}
其他注射工作正常,有什么想法吗?
我建议更改此设置:
public UserRepositoryMock(){
userFactory.generateFirstUser();
}
类似于:
@PostConstruct
public void setup() {
userFactory.generateFirstUser();
}