2016-08-11 2 views
0

에 실패EJB 호출 내가 컨트롤러에 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 

잘 모르겠어요, 아마 상속 hierachy가 문제가 될 수 :

IRepository IUserRepository에 의해 구현됩니다. 그런 다음 IRepository를 구현하는 AbstractRepository 추상 클래스를 가졌습니다. UserRepositoryMock은 AbstractRepository를 확장하고 IUserRepository 인터페이스를 구현합니다. 코드에서

:

@Singleton 
@Alternative 
public class UserRepositoryMock extends AbstractRepository<IUser> implements IUserRepository { 
@EJB 
private IUserFactory userFactory; 
public UserRepositoryMock(){ 
    userFactory.generateFirstUser() 
} 
} 

AbstractRepository

@Singleton 
public abstract class AbstractRepository<T extends IBO> implements IRepository<T> { 
@Override 
public List<T> all(){....} 
} 

IUserRepository :

public interface IUserRepository extends IRepository<IUser>{ 
... 
} 

다른 주사가 잘 작동, 어떤 아이디어?

답변

1

나는 이것을 변경 제안 :

public UserRepositoryMock(){ 
    userFactory.generateFirstUser(); 
} 

을 같은 것으로 : 이유였다

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

네 - 바보 같은 실수. 고마워! – user3726033