请教:EJB3的SessionBean主动调用问题

07-01-07 kun2000
    

请教一下banq兄。如题,在j2se环境下,可以在main()里主动调用(启动)一个类的方法;而在EJB3.0里,感觉SessionBean都是“被动”的被调用,例如用client方式调用sessionBean。请问,有别的方式主动调用么?比如,容器启动后,自动执行某个sessionBean?

先谢过了。

    

kun2000
2007-01-08 10:14

banq兄在么?

banq
2007-01-08 18:14

使用Timer 定时启动

或者从外部通过JNDI主动调用

kun2000
2007-01-08 22:59

谢谢banq兄。

你指的Timer是EJB3的TimerService 么?我看过jboss-ejb3的例子,如下:

@Stateless

@Remote(ExampleTimer.class)

public class ExampleTimerBean implements ExampleTimer

{

private @Resource SessionContext ctx;

public void scheduleTimer(long milliseconds)

{

ctx.getTimerService().createTimer(new Date(new Date().getTime() + milliseconds), "Hello World");

}

@Timeout

public void timeoutHandler(Timer timer)

{

System.out.println("---------------------");

System.out.println("* Received Timer event: " + timer.getInfo());

System.out.println("---------------------");

timer.cancel();

}

}

问题是这个也是要先作为sessionBean被调用的。能主动调用么?

我的目的是在EJB3.0中实现定时执行SessionBean。

kun2000
2007-01-23 22:51

谢谢banq兄。看了TimerService的规范。还是得先用client调用SessionBean的业务方法,再由SessionBean注册Timer方式实现。没有Client的开头是不行的:(

不知道在EAR的application.xml中能否指定一个Main Class。。。。

真是头疼啊:(

2Go 1 2 下一页