我创建了一个Timer
,TimerVO
实现了Serializable
作为计时器的info并添加到TimeService
。 TimerVO
只保存将在超时时处理的对象的id。
timerService.createTimer(60000, 60000, new TimerVo(objectId, TIMER_NAME));
当节点启动时,定时器都被正确创建,我可以看到来自超时方法的日志记录,并且它们被保存在data/hypersonic/localDB.script
中的JBoss高超音速数据库中,但是当节点重新启动时,我得到了当容器恢复计时器时启动时ClassNotFoundException
。
2010-11-25 21:40:25,171 ERROR (main) [org.jboss.ejb.txtimer.GeneralPurposeDatabasePersistencePlugin] Cannot deserialize
java.lang.ClassNotFoundException: exam.ejb.TimerVo
为什么我得到ClassNotFoundException
并且有办法解决它?
EJB3.0,Java 1.6,JBoss 5.1.0.GA
答案 0 :(得分:0)
这看起来像是一个类加载器问题。我将TimerVo
移动到我在node03/lib
目录中部署的单独jar,我没有收到错误。我在JBoss的bug跟踪器上提出了bug问题。