关于EJB的远程调用sessionBean的方式

EJB的调用方式是有两种形式的,大致的调用顺序是这样的 

1->初始华servert的上下文,也就是初始化容器的上下文,

2->在在远程的调用EJB的beanHome接口

3->home接口的create()方法用来获取ejb的远程接口,

4->有了这个远程的接口我们就可以调用他的所有方法了.

在这里我们要注意的是,因为我们有远程调用和本地调用,他们也是不同的,具体加些小的代码片段来演示下

**********当是远程的时候:(调用方和EJB所在的JVM不是同一个的时候)********************************

1->初始华servert的上下文,也就是初始化容器的上下文,

             我们要使用java.util.properties来设置下容器上下文,以这个对象为参数来设置上下文.

// 注意要导入包

Properties p
= new   Properties() ;
// 将服务器的配置信息放入p中
p.put(Context.INITIAL_CONTEXT_FACTORY, " weblogic.jndi.WLInitialContextFactory " );
p.put (Context.PROVIDER_URL, 
" t3://localhost:7001 " );   // 这里的localhost是weblogic所在的服务器的IP
// 以上面的p来初始化容器上下文
Context ctx  =   new  InitialContext (p); 

2->在在远程的调用EJB的beanHome接口

Object ref  =  context.lookup( " JNDI_name " );  // lookup()直接调用其jndi名称
SbLocalHome testHome  = (ClassName)PortableRemoteObject.narrow(ref,ClassName. class );

3->home接口的create()方法用来获取ejb的远程接口,

test te =  testHome .create()   //获得了远程的接口

4->有了这个远程的接口我们就可以调用他的所有方法了.

te.someMethod();

**********当是本地调用的时候:(调用方和EJB所在的JVM不是同一个的时候)********************************

 

// 初始化容器上下文
Context cont = new  InitialContext ();
// 通过JNDI来获得sessionBean
testHome home = (testHome)cont.lookup( " JNDIName " );
// 通过home来获得远程的接口
test te = home.create();
// 通过远程接口来调用方法

你可能感兴趣的:(jvm,weblogic,ejb)