如何解决Jboss RiverUnmarshaller“试图读取具有无效ID相对于...附近的反向引用
想知道如果有人可以帮助我解决很长一段时间我无法解决的错误,我认为这可能是图书馆的问题,因为它发生的可能性是10%。
问题在于,JBoss Timer Service无法在到期时间读取对象并将其序列化到Java bean上。 首先,我创建一个扩展了Serializer的对象,然后将其传递给Timer服务以对其进行序列化并保持不变。然后,在计时器超时时,JBoss抛出该对象抛出的IndexOutOfBoundsException,从而无法从表中读取该对象
java.io.InvalidObjectException:尝试读取具有无效ID(相对于-193附近)的反向引用
有人遇到过吗?
这是完整的堆栈跟踪
2020-08-21 06:54:00,942警告[org.jboss.as.ejb3.timer](ServerService线程池-74)WFLYEJB0161:无法恢复计时器'Talent.Management.EmployeeMatchAndGapTimerEventHandler'(id = c2261ee7 -015d-4890-9d66-106bf87fd311)的持久状态:java.lang.RuntimeException:java.io.InvalidObjectException:尝试读取具有无效ID(相对于-193附近)的反向引用 在org.jboss.as.ejb3@16.0.0.Final//org.jboss.as.ejb3.timerservice.persistence.database.DatabaseTimerPersistence.deSerialize(DatabaseTimerPersistence.java:690) 在org.jboss.as.ejb3@16.0.0.Final//org.jboss.as.ejb3.timerservice.persistence.database.DatabaseTimerPersistence.timerFromResult(DatabaseTimerPersistence.java:583) 在org.jboss.as.ejb3@16.0.0.Final//org.jboss.as.ejb3.timerservice.persistence.database.DatabaseTimerPersistence.loadActiveTimers(DatabaseTimerPersistence.java:470) 在org.jboss.as.ejb3@16.0.0.Final//org.jboss.as.ejb3.timerservice.TimerServiceImpl.getActivePersistentTimers(TimerServiceImpl.java:977) 在org.jboss.as.ejb3@16.0.0.Final//org.jboss.as.ejb3.timerservice.TimerServiceImpl.restoreTimers(TimerServiceImpl.java:704) 在org.jboss.as.ejb3@16.0.0.Final//org.jboss.as.ejb3.timerservice.TimerServiceImpl.activate(TimerServiceImpl.java:223) 在org.jboss.as.ejb3@16.0.0.Final//org.jboss.as.ejb3.component.EJBComponent.init(EJBComponent.java:595) 在org.jboss.as.ejb3@16.0.0.Final//org.jboss.as.ejb3.component.stateless.StatelessSessionComponent.init(StatelessSessionComponent.java:110) 在org.jboss.as.ee@16.0.0.Final//org.jboss.as.ee.component.BasicComponent.start(BasicComponent.java:222) 在org.jboss.as.ee@16.0.0.Final//org.jboss.as.ee.component.ComponentStartService$1.run(ComponentStartService.java:54) 在java.base / java.util.concurrent.Executors $ RunnableAdapter.call(Executors.java:515) 在java.base / java.util.concurrent.FutureTask.run(FutureTask.java:264) 在org.jboss.threads@2.3.3.Final//org.jboss.threads.ContextClassLoaderSavingRunnable.run(ContextClassLoaderSavingRunnable.java:35) 在org.jboss.threads@2.3.3.Final//org.jboss.threads.EnhancedQueueExecutor.safeRun(EnhancedQueueExecutor.java:1982) 在org.jboss.threads@2.3.3.Final//org.jboss.threads.EnhancedQueueExecutor$ThreadBody.doRunTask(EnhancedQueueExecutor.java:1486) 在org.jboss.threads@2.3.3.Final//org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1377) 在java.base / java.lang.Thread.run(Thread.java:834) 在org.jboss.threads@2.3.3.Final//org.jboss.threads.JBossThread.run(JBossThread.java:485) 原因:java.io.InvalidObjectException:尝试读取具有无效ID(相对于-193附近)的反向引用 在org.jboss.marshalling.river@2.0.6.Final//org.jboss.marshalling.river.RiverUnmarshaller.doReadObject(RiverUnmarshaller.java:253) 在org.jboss.marshalling.river@2.0.6.Final//org.jboss.marshalling.river.RiverUnmarshaller.doReadObject(RiverUnmarshaller.java:205) 在org.jboss.marshalling@2.0.6.Final//org.jboss.marshalling.AbstractObjectInput.readObject(AbstractObjectInput.java:41) 在org.jboss.marshalling@2.0.6.Final//org.jboss.marshalling.ModularClassResolver.resolveClass(ModularClassResolver.java:116) 在org.jboss.marshalling.river@2.0.6.Final//org.jboss.marshalling.river.RiverUnmarshaller.doReadClassDescriptor(RiverUnmarshaller.java:1022) 在org.jboss.marshalling.river@2.0.6.Final//org.jboss.marshalling.river.RiverUnmarshaller.doReadClassDescriptor(RiverUnmarshaller.java:1041) 在org.jboss.marshalling.river@2.0.6.Final//org.jboss.marshalling.river.RiverUnmarshaller.doReadNewObject(RiverUnmarshaller.java:1355) 在org.jboss.marshalling.river@2.0.6.Final//org.jboss.marshalling.river.RiverUnmarshaller.doReadObject(RiverUnmarshaller.java:272) 在org.jboss.marshalling.river@2.0.6.Final//org.jboss.marshalling.river.RiverUnmarshaller.doReadObject(RiverUnmarshaller.java:205) 在org.jboss.marshalling@2.0.6.Final//org.jboss.marshalling.AbstractObjectInput.readObject(AbstractObjectInput.java:41) 在org.jboss.as.ejb3@16.0.0.Final//org.jboss.as.ejb3.timerservice.persistence.database.DatabaseTimerPersistence.deSerialize(DatabaseTimerPersistence.java:686) ...还有17个
我要为其创建计时器的对象是一个简单的员工ID和到期时间。
任何建议将不胜感激 ta
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。