EJB 3.0 开发指南之定时服务
网络编程 2021-07-05 11:23www.168986.cn编程入门
在EJB2.1的规范中需要实现ejbTimeout方法,还有ejbPassivate、ejbRemove等方法。在EJB3.0中,只有你想用它们的时候,你才必须创建它们,否则不必实现。
这个例子主要有5个文件,这个例子的Bean是一个无状态会话Bean
NewsTimer.java业务接口。
NewsTimer.java业务实现类。将来我们开发的EJB也都是这样命名(在接口名上加上Bean)。
Client.java测试EJB的客户端类。
jndi.propertiesjndi属性文件,提供访问jdni的基本配置属性。
Build.xmlant 配置文件,用以编译、发布、测试、清除EJB。
狼蚁网站SEO优化针对每个文件的内容做一个介绍。
NewsTimer.java
package .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 .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 .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。
这个例子主要有5个文件,这个例子的Bean是一个无状态会话Bean
NewsTimer.java业务接口。
NewsTimer.java业务实现类。将来我们开发的EJB也都是这样命名(在接口名上加上Bean)。
Client.java测试EJB的客户端类。
jndi.propertiesjndi属性文件,提供访问jdni的基本配置属性。
Build.xmlant 配置文件,用以编译、发布、测试、清除EJB。
狼蚁网站SEO优化针对每个文件的内容做一个介绍。
NewsTimer.java
package .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 .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 .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多线程编程之限制优先级
编程语言
- 宿迁百度关键词排名指南:实现精准营销的关键
- 四川SEO优化怎么做网络推广
- 立昂技术备案老域名收购:如何为您的业务赋能
- 安徽百度关键词seo贵不贵,一般需要多少钱
- 吉林百度快照排名怎么做电话营销
- 多伦新手做SEO怎么做
- 甘肃优化关键词排名推广怎么做论坛营销
- 沙雅SEO网站推广:提升您的在线可见性
- 四川SEO优化如何提升销售额和销售量
- 聂荣网站排名优化:提升网站可见性的全方位指
- 涞水SEO:提升地方企业在线可见性的策略
- 辽宁百度seo排名怎样做网站排名
- 临湘哪有关键词排名优化:提升网站可见度的关
- 黑龙江百度网站优化有没有优惠
- 凉城优化关键词排名推广:提升您的网络可见性
- 萝北整站优化:提升您网站流量和排名的全面指