|
不论是那种J2EE的客户端,它要调用一个EJB的相应商业方法都要经过以下这三步:
1、 通过JNDI定位EJB的Remote Home Interface 创建JNDI名称环境,通过在发布时你给EJB定义的JNDI名称找到该EJB的Remote Home Interface。
2、 创建EJB的实例,得到Remote Interface 调用上一步得到的Remote Home Interface中的create()方法,EJB Container会创建相应EJB的实例。而你得到的就是一个定义了EJB要实现的商业方法的Remote Interface。(EJB Container创建EJB实例的基本过程如下:客户端调用create()方法-'EJB Container实例化相应的EJB Bean Class'EJB Container调用Bean Class中的ejbCreate方法'最后返回给我们的是EJB的Remote Interface)
3、 调用Remote Interface中的商业方法 客户端调用上一步创建的Remote Interface中的商业方法,EJB Container就会调用相应Bean Class实例中的相应方法。
下面让我们通过具体的代码来说明这个过程。首先我们先来创建一个Stateless Session Bean。这个Session Bean实现的功能很简单,在其中的商业方法只有一个sayHello方法,打印一句"Hello World:"。如我上边所介绍的这个EJB共有三个部分,它们的源代码如下所示:
包括create()方法的Remote Home Interface接口:
package com.javausr.example;
import java.rmi.*;
import javax.ejb.*;
public interface HelloWorldHome extends EJBHome {
public HelloWorld create() throws RemoteException, CreateException;
} |
|