EJB 3.0开辟指南之按时服务[Java编程]
本文“EJB 3.0开辟指南之按时服务[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
在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.
以上是“EJB 3.0开辟指南之按时服务[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |