我在javaee 6的教程中随处可读,可以在两台不同的机器上部署EJB模块和WEB模块。但是,我无法找到如何实现这一目标的教程。我如何连接这两个服务器,以便我的WEB应用程序中的组件可以找到我的远程EJB?
答案 0 :(得分:0)
我在这里是如何实现的:
EJB
@Stateless(name = "beanname", mappedName = "jndiBeanName")
public class TheBean implements TheBeanRemote {
@Override
public String theMethod(String str) {
return " Bean Invoked " + str;
}
}
EJB的远程接口,位于单独的JAR中,因此它将出现在EJB存档和webapp存档中
@Remote
public interface TheBeanRemote {
public String theMethode(String str);
}
最后在servlet的某个地方:
InitialContext ic;
TheBeanRemote br;
try {
String jndiName = TheBeanRemote.class.getName();
ic= new InitialContext();
at =(TheBeanRemote) ic.lookup("jndiBeanName");
return at.theMethod(parameter);
} catch (NamingException ex) {
//
}
请注意,我将EJB封装在ear archive中。