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

kun2000 07-01-07
    

请教一下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 下一页