我刚刚开始阅读EJB。
是否可以在单独的Web应用程序(战争)中调用远程bean?如果它可能如何实现它。我尝试过,如果两个在同一个EAR中,我可以调用远程bean,但我想在单独的EJB + WAR中调用它。
PS。我使用glassfish 4.0
答案 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模块以构建传递