我使用glassfish 4.0使用计时器服务用ejb测试耳朵。当glassfish加载时,它显示加载了计时器服务,一切看起来都很好。
我调用TimerService.createTimer并且不会抛出任何异常。
但是,当我尝试通过调用timerService.getTimers来查看存储了多少计时器时,它总是返回一个空集合。
我在调试模式下看到了这一点,所以如果定时器调度程序是持久的,那么它就没有关系,因为我没有重新启动服务器。
可能是什么原因?我尝试在glassfish模式和timer_db模式中甚至在我的应用程序模式中创建EJB_ TIMER _TBL,并将jdb / TimerPool更改为使用DerbyPool连接池,我将其设置为指向我的自定义数据库但是这次我得到一个SQLException,发现没有找到EJB _TIMER_ TBL。我认为因为timer service select语句没有为EJB _TIMER__TBL指定表模式。
我确定有人遇到这样的问题,我将不胜感激任何帮助
感谢
答案 0 :(得分:2)
今天我遇到了Netbeans7.4 +嵌入式Glassfish v4中的问题 - 我无法使用@Shchedule注释bean部署EAR。错误:EJB计时器服务不可用。在GF管理控制台中尝试在TimerPool上设置Ping设置返回错误:
java.lang.NoClassDefFoundError: Could not initialize class org.apache.derby.jdbc.EmbeddedDriver Could not initialize class org.apache.derby.jdbc.EmbeddedDriver
我的解决方案 - 我下载了独立的Glassfish v4并添加到Netbeans中,问题就消失了。