怎么跨App 远程调用EJB
AppB想调用另外一个web应用AppA提供的EJB,有看到网上一些文章如是说:
Hashtable environment = new Hashtable();
environment.put(Context.INITIAL_CONTEXT_FACTORY, "org.jnp.interfaces.NamingContextFactory");
environment.put(Context.URL_PKG_PREFIXES, "org.jboss.naming:org.jnp.interfaces");
environment.put("java.naming.provider.url", "jnp://www.aaa.com:1099");
InitialContext ctx = null;
try {
ctx = new InitialContext(environment);
System.out.println("ctx.lookup(WorkListManager):==========" + "WorkListManager");
Object obj = ctx.lookup("java:comp/env/ejb/bnsbase/Role");
Role = ((RoleHome) PortableRemoteObject.narrow(obj, WorkListManagerHome.class)).create();
} catch (NamingException ex) {
System.err.println(" ex1: " + ex);
}
我很奇怪,在本地AppB根本就没有RoleHome以及Role的class,因为他们都是RoleEJB的class,那么我怎么cast成为AppA中才有的EJB对象呢?难道AppB端也需要添加这个EJB?
真的不是很了解!请各位高人指点一二!