2016-09-28 3 views
0

EJB에서 방금 독서를 시작했습니다.웹 응용 프로그램에서 EJB 원격 Bean 호출

별도의 웹 응용 프로그램 (war)에서 원격 bean을 호출 할 수 있습니까? 가능한 경우 그것을 달성하는 방법. 나는 그것을 시험해 보았다. 웹 애플리케이션은 같은 EAR에서 둘다 원격 EJB를 호출 할 수 있지만, 별도의 EJB + WAR에서 그것을 호출하기를 원한다.

ps. 나는 당신이 시도 할 수 글래스 피쉬 4.0

답변

1

글래스 피쉬 사용 https://glassfish.java.net/javaee5/ejb/EJB_FAQ.html#StandaloneRemoteEJB

내 예를 들어 아래의 웹 로직에 대해.

1) 당신의 EAR에 당신은 @remote 주석 인터페이스가 있어야하며

@Remote 
public interface Calculator { 

    public int add(int a, int b); 

} 

@Stateless(mappedName = "myCalculator") 
public class CalculatorImpl implements Calculator { 
    @Override 
    public int add(int a, int b) { 
     return a + b; 
    } 
} 

이 구현

)는 클라이언트) 원격 계산기

private static Calculator getRemoteCalculator() { 
    Hashtable<String, String> props = new Hashtable<String, String>(); 

    props.put(Context.INITIAL_CONTEXT_FACTORY, "weblogic.jndi.WLInitialContextFactory"); 
    props.put(Context.PROVIDER_URL, "t3://localhost:7001");  


    try { 
     InitialContext ctx = new InitialContext(props); 
     return (Calculator) ctx.lookup("myCalculator#com.javaee.Calculator"); 
    } catch (NamingException e) { 
     throw new RuntimeException(e); 
    } 
} 

3 호출 클라이언트가 있어야이다 원격 Calculator EJB 모듈을 추가하여 패스를 구축해야합니다.