Eclipselink加载对象和JMS序列化



我们有一个带有Severals War模块的Glassfish 5应用程序服务器和一些正在JMS和REST WebServices之间通信的Java应用程序客户。

使用Eclipselink从数据库中加载对象,并在需要时自动通过JMS发送。现在,当jms抛出a时,我在客户端的对象时面临问题 java.lang.ClassNotFoundException: org.eclipse.persistence.indirection.IndirectList例外。问题是我的实体中没有任何间接列表对象,但我认为是eClipSelink可以将我的对象列出为间接列表。问题是,为什么在客户端恢复对象时,它试图实例化indirectlist而不是list或arrayList(我将myObject.class放在jms的getbody()方法中)?我可以通过添加Eclipselink依赖客户端来纠正错误,但是我对此解决方案不满意,因为我通常不需要它...

我希望我能很好地解释我的问题。谢谢。

求解java.lang.ClassNotFoundException的最简单方法是将丢失的类添加到您的类路径中。真的很简单。

对于它的价值,我通常会出于这种确切的原因阻止人们使用JMS对象。除非您输入消息的对象为极其简单,否则您将添加到客户端的类中,除非对另一个对象进行挑选,否则可能不是真正必要的。同样,Java对象的序列化和避难所化也很慢。我通常建议应用程序通过简单的字节数组交换数据,甚至使用JSON之类的东西(尽管JSON可能会很慢,那里有更快的替代方案)。

最新更新