2012-04-18 2 views
1

나는 다음과 같은 구조를 가지고 :EJB 생성

@Stateless 
public class BasicCMIRP { 
    @EJB 
    private MyDummyBean basicMXBeanz; 
} 

다음 수업이, 을 모두 잘 작동

@Singleton 
public class MyDummyBean { 
} 

을하지만 난 그것을 변경 할 경우 MyDummyBeanDynamicMBean를 구현 은 다음과 같습니다.

@Singleton 
public class MyDummyBean implements DynamicMBean { 
    // ... implementation methods go here 
} 

로그에서 예외 인 Can not create Bean BasicCMIRP이 표시됩니다. 이유가 무엇입니까? 내가 DynamicMBean을 구현하기 위해 MyDummyBean을했고 개인 생성자를 표시하고 정적 getInstance() 방법을 만들어이 클래스 싱글을 만들어 과거

하지만, 새로운 자바 EE 6과 내 인생을 더 쉽게 만드는 새로운 주석을 사용하고 싶었, 하지만 뭔가 기대했던대로 작동하지 않습니다. 어떤 아이디어?

+0

아, 나는 그것에 대해 신경 쓰지 않아. 이제 비트는 대답을 받아 들일 것이다. –

답변

0

해결책을 찾았습니다. 빈이 둘 이상의 인터페이스를 구현하는 경우 @ LocalBean으로 표시해야했습니다.

+1

그것은 부분적으로 만 진실이다. 빈이 비즈니스 인터페이스를 구현하고 인터페이스 대신 클래스별로 주입하고자하는 경우에는'LocalBean'이 필요합니다. 'BasicCMIRP' 클래스에서는'DynamicMBean' 인터페이스가 아니라 클래스에 의해'MyDummyBean'을 주입합니다. 그것이 당신의 핵심 문제였습니다. –

+0

보다 구체적으로, bean이 인터페이스를 구현하지 않을 때, 기본 클라이언트 뷰는'LocalBean'이며, bean이 정확히 하나의 인터페이스 (javax.ejb 및 java.io 인터페이스 외부)를 구현할 때 기본 클라이언트 뷰는 해당 로컬 인터페이스입니다. –

관련 문제