Chinaunix首页 | 论坛 | 博客
  • 博客访问: 14433864
  • 博文数量: 5645
  • 博客积分: 9880
  • 博客等级: 中将
  • 技术积分: 68081
  • 用 户 组: 普通用户
  • 注册时间: 2008-04-28 13:35
文章分类

全部博文(5645)

文章存档

2008年(5645)

我的朋友

分类:

2008-04-28 21:43:19

下载本文示例代码
  在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.javapackage com.kuaff.ejb3.schedule;import javax.ejb.Remote;@Remotepublic interface NewsTimer{ public void fiveNews();}  这个接口定义了fiveNews方法,如果这个方法被调用,5分钟后将往控制台上输出一条新闻。  你不必配置它的JNDI名称,也不必写它的配置文件。在JBOSS实现的EJB3.0中,你不必写任何的EJB部署文件和jboss部署文件。JBOSS默认使用接口的全称作为它的JNDI名。在上面的例子中,它的全称可以通过NewsTimerclass.forName()得到。 NewsTimerBean.javapackage com.kuaff.ejb3.schedule;import java.util.Date;import javax.ejb.Inject;import javax.ejb.SessionContext;import javax.ejb.Stateless;import javax.ejb.Timer;@Statelesspublic 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.javapackage 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。   在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.javapackage com.kuaff.ejb3.schedule;import javax.ejb.Remote;@Remotepublic interface NewsTimer{ public void fiveNews();}  这个接口定义了fiveNews方法,如果这个方法被调用,5分钟后将往控制台上输出一条新闻。  你不必配置它的JNDI名称,也不必写它的配置文件。在JBOSS实现的EJB3.0中,你不必写任何的EJB部署文件和jboss部署文件。JBOSS默认使用接口的全称作为它的JNDI名。在上面的例子中,它的全称可以通过NewsTimerclass.forName()得到。 NewsTimerBean.javapackage com.kuaff.ejb3.schedule;import java.util.Date;import javax.ejb.Inject;import javax.ejb.SessionContext;import javax.ejb.Stateless;import javax.ejb.Timer;@Statelesspublic 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.javapackage 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。 下载本文示例代码


EJB 3.0 开发指南之定时服务EJB 3.0 开发指南之定时服务EJB 3.0 开发指南之定时服务EJB 3.0 开发指南之定时服务EJB 3.0 开发指南之定时服务EJB 3.0 开发指南之定时服务EJB 3.0 开发指南之定时服务EJB 3.0 开发指南之定时服务EJB 3.0 开发指南之定时服务EJB 3.0 开发指南之定时服务EJB 3.0 开发指南之定时服务EJB 3.0 开发指南之定时服务EJB 3.0 开发指南之定时服务EJB 3.0 开发指南之定时服务EJB 3.0 开发指南之定时服务
阅读(139) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~