Невозможно десериализовать информационный объект Timer с ClassNotFoundException на JBoss - PullRequest
1 голос
/ 26 ноября 2010

Я создал Timer с TimerVO, который реализует Serializable в качестве таймера info и добавлен к TimeService. TimerVO просто содержит идентификатор объекта, который будет обработан по таймауту.

timerService.createTimer(60000, 60000, new TimerVo(objectId, TIMER_NAME));

Когда узел запущен, все таймеры созданы правильно, я вижу журнал из метода timeout, и они сохраняются в гиперзвуковой базе данных JBoss в data/hypersonic/localDB.script, однако при перезапуске узла я получаю 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

1 Ответ

0 голосов
/ 29 ноября 2010

Это похоже на проблему загрузчика классов. Я переместил TimerVo в отдельную флягу, которую я развернул в каталоге node03/lib, и я не получил ошибок. Я поднял проблему bug на трекере ошибок JBoss.

...