您的位置:软件 > 开发者网络 > 开发工具 > Java > 正文
EJB 3.0 开发指南之定时服务
[文章信息]
作者:smallnest
时间:2005-02-03
出处:Java研究组织
责任编辑:方舟
[文章导读]
在EJB2.1的规范中需要实现ejbTimeout方法,当然还有ejbPassivate、ejbRemove等方法
advertisement
热点推荐
· MSN“性感鸡”预防措施及杀毒方案
· 江民MSN“性感鸡”蠕虫技术报告
· 最新MSN蠕虫病毒分析报告
· MSN最新蠕虫的手工清除方法
· Windows 2000的“隐形”武器(上)
[正文]
  在EJB2.1的规范中需要实现ejbTimeout方法,当然还有ejbPassivate、ejbRemove等方法。在EJB3.0中,只有你想用它们的时候,你才必须创建它们,否则不必实现。

  这个例子主要有5个文件,这个例子的Bean是一个无状态会话Bean:

  NewsTimer.java:业务接口。

  NewsTimer.java:业务实现类。将来我们开发的EJB也都是这样命名(在接口名上加上Bean)。

  Client.java:测试EJB的客户端类。

  jndi.properties:jndi属性文件,提供访问jdni的基本配置属性。

  Build.xml:ant 配置文件,用以编译、发布、测试、清除EJB。

  下面针对每个文件的内容做一个介绍。

NewsTimer.java

package com.kuaff.ejb3.schedule;
import javax.ejb.Remote;
@Remote

public interface NewsTimer
{
 public void fiveNews();
}

  这个接口定义了fiveNews方法,如果这个方法被调用,5分钟后将往控制台上输出一条新闻。

  你不必配置它的JNDI名称,也不必写它的配置文件。在JBOSS实现的EJB3.0中,你不必写任何的EJB部署文件和jboss部署文件。JBOSS默认使用接口的全称作为它的JNDI名。在上面的例子中,它的全称可以通过NewsTimerclass.forName()得到。

NewsTimerBean.java

package com.kuaff.ejb3.schedule;
import java.util.Date;
import javax.ejb.Inject;
import javax.ejb.SessionContext;
import javax.ejb.Stateless;
import javax.ejb.Timer;

@Stateless

public class NewsTimerBean implements NewsTimer
{
 private @Inject SessionContext ctx;
 public void fiveNews()
 {
  ctx.getTimerService().createTimer(new Date(new Date().getTime() + 300000), "子虚乌有电视台5分钟新闻栏目:现在过5分钟,又到即时新闻节目的时间了。");
 }

 public void ejbTimeout(Timer timer)
 {
  System.out.printf("时间到:%n%s%n" , timer.getInfo());
  timer.cancel();
 }
}

Client.java

package com.kuaff.ejb3.schedule;

import javax.naming.InitialContext;
import javax.naming.NamingException;

public class Client
{
 public static void main(String[] args) throws NamingException
 {
  InitialContext ctx = new InitialContext();
  NewsTimer timer = (NewsTimer) ctx.lookup(NewsTimer.class.getName());
  timer.fiveNews();
 }
}


  这个类用来测试我们发布的计数器EJB。首先通过

ctx = new InitialContext();

  得到上下文,然后通过lookup查找NewsTimer,然后启动计时。。

  请运行{$JBOSS_HOME}/bin目录下的run.bat: run –c all,启动JBOSS。

  在Eclipse的Ant视图中执行ejbjar target。或者在命令行下,进入到此工程目录下,执行ant ejbjar,将编译打包发布此EJB。

  在Eclipse的Ant视图中执行run target。或者在命令行下,进入到此工程目录下,执行ant run,测试这个EJB。

发表评论推荐给朋友我想参加相关培训打印我对此感兴趣订阅电子杂志
相关内容焦点新闻
  • 谈谈J2SE中的序列化之一个感性的认识
  • Java中基本数据类型与流的操作方法
  • 在Eclipse中使用ANT灵活构建Web应用
  • Hibernate+Spring+Struts扩展Struts
  • 通过Java Swing看透MVC设计模式
  • 国内最早的黑客组织“红客联盟”宣布解散
  • 零关税引爆数码相机降价 洋品牌争抢市场
  • 新陈代谢:老家伙们撤退与新生一代的天下
  • 同工不同酬:跨国公司经营不能承受之重
  • 17.75万元奢华“天价手机”热销大连惹争议
  • 胡鞍钢不再沉默 此番焦点在就业与3G关系
  • 双模小灵通样机现身 可兼容GSM网络
  • 品牌重塑案例:柯达在中国的坎坷市场路
  • Advertisement

    天极无线


    奇妙科幻|美好风光|清风车影|漫画卡通|星座生肖|明星写真|动物世界
    老鼠爱大米
    挥着翅膀的女孩
    女人味
    栀子花开
    白月光
    刚刚好
    江南
    快乐崇拜
    亲爱的你怎么不在我身边
    小薇
    2002年的第一场雪
    有多少爱可以重来
    我的地盘
    七里香
    情人
     
    老鼠爱大米 老板电话
    冲动的惩罚 七里香
    我不是黄蓉 女生撒娇
    盛夏的果实 坚持到底
    孤单北半球 眉飞色舞
    挪威的森林 可爱女人
    最浪漫的事 老板电话

    CSEEK搜索