java 创建一个支持本地调用的无状态SessionBean至少需要包含 哪些部件

 我来答
灼热使徒
2011-01-07 · 超过21用户采纳过TA的回答
知道答主
回答量:50
采纳率:0%
帮助的人:46.2万
展开全部
首先说一下Stateless 与 Stateful 会话 Bean 区别

无状态 (Stateless)
在不同方法调用间不保留任何状态
事务处理必须在一个方法中结束
通常资源占用较少;可以被共享(因为它是无状态的)

有状态 (Stateful)
可以在不同的方法调用间保持针对各个客户端的状态
与客户端的联系必需被维持;通常开销较大

无状态会话 Bean 的生命周期非常简单:容器可以调用 Bean 的 remove() 方法来回收 Bean,来控制资源的使用

以EJB为例 开发一个BEAN需要开发三种类
Home 接口
定义如何创建 bean
对无状态会话 bean 而言非常简单
对其它类型的 bean,home 接口有更重要责任
开发人员提供一个接口
接口描述协议
容器自动生成实现代码
public interface CalculatorHome extends EJBHome{
public Calculator create()
throws CreateException, RemoteException;
}
Remote 接口
定义您的 bean 的协议:客户端如何访问您的 bean?
所有的方法必需抛出 java.rmi.RemoteException,也可抛出其它与应用相关的异常
不要将 "remote" 接口与 java.rmi.Remote 混淆---不同的概念
public interface Calculator extends EJBObject{
int product(int operand1, int operand2) throws RemoteException;
}

Bean 类
提供您的 bean 的行为:实现在 remote 接口中定义的方法; 不直接 "implements" remote 接口
public class CalculatorBean implements SessionBean{
private SessionContext mySessionCtx = null;

public int product(int operand1, int operand2) {
return operand1*operand2;
}
public void ejbCreate() throws CreateException, RemoteException{}
public void ejbActivate() throws RemoteException{}
public void ejbPassivate() throws RemoteException{}
public void ejbRemote() throws RemoteException{}
public SessionContext getSesstionContext() {....}
public void setSesstionContext(SessionContext ctx) {....}
}

容器将根据这些类的定义来生成运行时的支持代码
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式