2013-03-05 1 views
2

내 영속성 모델에서 bean 유효성 검사를 작성하고 있습니다. DB에서 일부 구성 매개 변수를 검색하려면 EJB Bean을 호출해야합니다. 이것을 어떻게 할 수 있습니까?JBoss 빈 검증에서 EJB를 호출해야합니다.

@Stateless 및 @LocalBean으로 내 EntityValidator를 표시하려고했지만 JBoss는 여전히 내 EntityValidator를 POJO로 취급합니다. 그것에 대해 뭔가 할 수 있을까요? 또는 POJO에서 EJB를 어떻게 검색 할 수 있습니까?

답변

2

콩 검증 1.0, 당신은 EJB를이 상자 밖으로 검증에 주입 얻을 수 없습니다. 그러나 이것은 Bean Validation 1.1에서 변경 될 것입니다. 현재

하면 다음과 같은 가능성이 있습니다

  • 는 JNDI를 통해 EJB를 검색 : MyEjb myEjb = InitialContext.doLookup(myEjbName);
  • 가 의존성 주입을 가능하게 만들어 검증에 EJB 참조를 주입
  • 사용 Seam Validation 개체를 사용자 정의 ConstraintValidatorFactory을 구현을 유효성 검사기 객체 @Inject (부인 : 저는 Seam Validation의 저자입니다)

Bean 1.1을 사용하면 out of box이 가능합니다.

+0

우리는 CDI 빈과 동일하게 CODI를 사용합니다. 구현은 Seam-Validation과 유사하다고 생각합니다. –

0

jboss가 JPA 유효성 검사기에 빈을 주입 할 것이라고 생각하지 않습니다.

JDNI를 사용하여 EJB에서 POJO를 조회 할 수 있습니다.

1

현재 주입이 유효성 검사기에서 작동하지 않습니다.

나는 정확히 그 행동을 가능하게하기 위해 bean 유효성 검사의 향후 확장 계획이 있다고 read했습니다.

그러나 이음새 또는 deltaspike과 같은 확장이 있어야 주입을 제공 할 수 있습니다.

확인이 : injection in validators

+0

CODI 및 Seam3에서 지원합니다. 두 가지 모두 DeltaSpike와 병합하기 때문에 동일하게 지원할 것입니다. CODI와 DeltaSpike는 많은 환경에서 테스트되고 설치 공간이 최소화되어 있기 때문에 선호합니다. –