posts - 66,  comments - 11,  trackbacks - 0
为创建和销毁EJB对象,开发者需要使用Home接口。Home接口的实现是Home对象,而Home对象由EJB服务器提供的工具生成。
package com.wyq.ejb;

import javax.ejb.EJBHome;
/**
 * Hello EJB组件的Home接口。它由EJB服务器提供的工具实现。Home接口实现
 * 称之为Home对象。Home对象充当了创建EJB对象的工厂。
 * 
 * 在该Home接口中,存在create()方法。它对应于HelloBean中的ejbCreate()方法。
 
*/
public interface HelloHome extends EJBHome {
    
/**
     * 创建EJB对象,
     * 
@return 新建的EJB对象。
     
*/
    Hello create() 
throws java.rmi.RemoteException,javax.ejb.CreateException;
    
/**
     * 1、为获得对EJB对象的引用,客户需要使用create方法。其中,create方法还能够完成
     * EJB组件的初始化工作。
     * 2、create方法抛出了如下异常:RemoteException和CreateException。由于Home对象是网络
     * 使能的基于RMI-IIOP的远程对象,因此要抛出RemoteException异常。
     
*/
}

本地Home接口是Home接口的高性能版本。
package com.wyq.ejb;

import javax.ejb.EJBLocalHome;
/**
 * Hello EJB组件的本地Home接口。它由EJB服务器提供的工具实现。
 * 本地Home接口实现称之为本地Home对象。本地Home对象充当了创建EJB本地对象的工厂。
 *
 
*/
public interface HelloLocalHome extends EJBLocalHome {
    
/**
     * 创建EJB本地对象
     * 
@return 返回新创建的EJB本地对象。
     
*/
    HelloLocal create()
throws javax.ejb.CreateException;
}


创建企业Bean类
package com.wyq.ejb;

import java.rmi.RemoteException;

import javax.ejb.EJBException;
import javax.ejb.SessionBean;
import javax.ejb.SessionContext;
/**
 * 演示无状态会话Bean.
 *
 
*/
public class HelloBean implements SessionBean {
    
private SessionContext ctx;
    
//EJB规范定义的方法
    public void ejbCreate(){
        System.out.println(
"ejbCreate()");
    }
    
public void ejbRemove() throws EJBException, RemoteException {
        System.out.println(
"ejbRemove()");
    }
    
public void ejbActivate() throws EJBException, RemoteException {
        System.out.println(
"ejbActivate()");
    }

    
public void ejbPassivate() throws EJBException, RemoteException {
        System.out.println(
"ejbPassivate()");
    }
    
/**
     * 由于企业Bean宿主在受管容器中,因此容器能够在任何时候调用企业Bean的方法。但如果企业Bean
     * 需要查询容器的当前信息的话,需要为EJB提供何种信息呢?比如在EJB中,组件本身可能需要查询当前用户
     * 的安全性凭证信息。
     * 
     * 容器将这些信息包含在称之为"EJB上下文"的对象中。EJB上下文对象是通往EJB容器的关口。其中,EJB上
     * 下文是容器的组成部分,开发者能够在企业Bean中访问到它。因此,在某种程度上,EJB上下文是为企业Bean
     * 访问容器提供的回调。该回调有助于企业Bean探知其自身的状态,并修改他们。
     * 
     * EJB上下文对于会话Bean、实体Bean、消息驱动Bean而言很有用。比如会话Bean含有会话上下文、实体Bean
     * 含有实体上下文、消息驱动Bean含有消息驱动上下文。
     * 依据EJB类型的不同,开发者能够分别通过调用setSessionContext、setEntityContext、setMessageDivenContext
     * 方法设置EJB上下文信息。
     
*/
    
public void setSessionContext(SessionContext ctx) throws EJBException,
            RemoteException {
        
this.ctx = ctx;
    }
    
//业务方法
    public String hello(){
        System.out.println(
"hello()");
        
return "Hello,World!";
    }

}

posted on 2009-10-30 13:01 王永庆 阅读(137) 评论(0)  编辑  收藏 所属分类: EJB学习笔记

只有注册用户登录后才能发表评论。


网站导航:
 
<2009年10月>
27282930123
45678910
11121314151617
18192021222324
25262728293031
1234567

常用链接

留言簿(1)

随笔分类

随笔档案

关注blogs

搜索

  •  

最新评论

阅读排行榜

评论排行榜