2011-10-20 5 views
6
public class Servlet2Stateless extends HttpServlet { 

@EJB private HelloUserLocal helloUser; 

    @Override 
    public void doGet(HttpServletRequest req, HttpServletResponse resp) 
      throws ServletException, IOException { 

     resp.setContentType("text/html"); 
     PrintWriter out = resp.getWriter(); 
     out.println(newSess.getName()); 


} 

다른 서버에 EJB와 Servlet을 배포 할 때 위의 코드 줄이 작동합니까? 또는 나는 전통적인 방식으로 그것을 부를 필요가 ????@EJB 원격 호출에 대한 주석 작업이 작동합니까?

답변

6

EJB가 클라이언트 (Servlet)와 다른 서버에있는 경우 @EJB 주석과의 종속성 삽입을 사용할 수 없습니다.

이전 JNDI 방식으로 진행해야 할 것 같습니다.

2

EJB 3.1 스펙에 따르면 사용자의 경우 서블릿을 포함하여 다양한 클라이언트에서 @EJB 주석을 사용할 수 있습니다.

문제는 다른 호스트에서 클라이언트와 서버를 실행하고 있다는 것입니다. 사용중인 서버에 따라 EJB 주석을 사용할 수 있습니다. This post은 Weblogic에서이를 수행하는 방법을 설명합니다.

두 경우 모두 서버 EJB를 @Remote로 정의해야합니다.

0

컨테이너가 CDI도 지원하는 경우 JNDI 조회가 수행되는 Bean에 대한 CDI 생성자 메소드를 작성할 수 있습니다. 그런 다음 적어도 주사 사이트에서 조회를 분리 할 수 ​​있습니다.

0

독립 실행 형 클라이언트에서 종속성 삽입 사용은 어떻게됩니까?

관련 문제