在Web App中调用EJB Remote Bean

时间:2016-09-28 04:43:37

标签: java ejb war

我刚刚开始阅读EJB。

是否可以在单独的Web应用程序(战争)中调用远程bean?如果它可能如何实现它。我尝试过,如果两个在同一个EAR中,我可以调用远程bean,但我想在单独的EJB + WAR中调用它。

PS。我使用glassfish 4.0

1 个答案:

答案 0 :(得分:1)

对于glassfish你可以试试这个: https://glassfish.java.net/javaee5/ejb/EJB_FAQ.html#StandaloneRemoteEJB

在我的weblogic示例下面。

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;
    }
}

2)您应该有一个可以呼叫您的远程计算器的客户端

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)对于客户端,您应该添加远程计算器EJB模块以构建传递