2017-01-08 4 views
1

Eclipse에서 EJB 3.1을 몇 가지 연습하고 있습니다.분리 된 웹 프로젝트의 EJB 인터페이스 참조

은 내가 EJB 프로젝트와 제이보스에 동적 웹 프로젝트가 9 내가 뭘하려고 오전 (동적 웹 프로젝트에서) 서블릿에서 EJB 방법 합니다 (EJB 프로젝트)를 호출하는 것입니다

@EJB 
IBeanRemote bean; //realize the bean variable is declared as the remote EJB Interfase. 

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {  
    response.getWriter().println(bean.getMethod()); 
} 

내 EJB는 매우 간단하다 :

@Remote 
@Stateless 
public interfase IBeanRemote { 
    public String getMethod(); 
} 
... 
public BeanRemote extends IBeanRemote 
{ 
    @Override 
    public String getMethod() { 
     return "How to call this ejb?"; 
    } 
} 

두 프로젝트는 무관하다 서블릿 코드에 @EJB 주석을 사용하여 ,

컴파일 할 수없는 라인

@EJB 
IBeanRemote bean; 
를 g은 EAR 프로젝트로 포장하지만, 은 (IBeanRemote와 서블릿이 분리 된 프로젝트에 있기 때문에) 웹 프로젝트에서 IBeanRemote 유형 참조를 참조에 내가 할 수없는 나는, 그래서 .

웹 프로젝트 빌드 경로에 EJB 프로젝트를 추가하는 것이 일반적인 해결책 일 수 있지만 매우 원격 서버에서 실행되는 원격 EJB를 사용하고 있다면 웹 프로젝트에서 아무것도 알지 못한다고 가정합니다. EJB 구현에 관해서.

서블릿 클래스 을 작성하고 eclipse에서 EJB 메소드를 호출하기 위해 IRemoteBean 참조 유형을 웹 프로젝트에 어떻게 가져올 수 있습니까?

답변

1

EJB 프로젝트를 두 개의 작은 프로젝트, 즉 인터페이스가 포함되어 있고이 프로젝트를 클라이언트에 사용할 수있는 EJB-API와 인터페이스를 구현하는 EJB-IMPL로 구분하지 않는 이유는 무엇입니까? 클라이언트와 EJB-IMPL 모두 EJB-API 프로젝트에 대한 참조를 갖습니다.

+0

실제로 저는 EAR 내부에서 EJB 프로젝트를 생성 할 때이 옵션을 선택하여 Eclipse에서 ejb 클라이언트 jar를 자동으로 만들 수 있음을 깨달았습니다. ejb 인터페이스 만 클라이언트 jar로 반출됩니다. 좋아, 고마워. –