怎麼跨App 遠端呼叫EJB

ryanlee發表於2005-11-07
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?

真的不是很瞭解!請各位高人指點一二!

相關文章