序列化OpenJPA实体将抛出不支持的操作异常DetachedStateManager.isProvisional(DetachedStateManager.java:760)

序列化OpenJPA实体将抛出不支持的操作异常DetachedStateManager.isProvisional(DetachedStateManager.java:760),java,serialization,jpa,red5,openjpa,Java,Serialization,Jpa,Red5,Openjpa,我的框架似乎遇到了一个特殊实体的问题,该实体经常由于异常而无法序列化 实体: 我的理论是:序列化程序使用来自OpenJPA的增强类,但它无法序列化它。 但我不知道只有在这个实体和所有其他工作正常的情况下,这怎么可能发生 例外情况: WARN: Exception: java.lang.reflect.InvocationTargetException java.lang.reflect.InvocationTargetException at sun.reflect.NativeMet

我的框架似乎遇到了一个特殊实体的问题,该实体经常由于异常而无法序列化

实体:

我的理论是:序列化程序使用来自OpenJPA的增强类,但它无法序列化它。
但我不知道只有在这个实体和所有其他工作正常的情况下,这怎么可能发生

例外情况:

WARN: Exception: java.lang.reflect.InvocationTargetException
java.lang.reflect.InvocationTargetException
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.apache.commons.beanutils.BeanMap.get(BeanMap.java:390)
    at org.red5.io.amf.Output.writeObject(Output.java:348)
    at org.red5.io.object.Serializer.writeObjectType(Serializer.java:332)
    at org.red5.io.object.Serializer.writeComplex(Serializer.java:173)
    at org.red5.io.object.Serializer.serialize(Serializer.java:119)
    at org.red5.io.amf.Output.writeObject(Output.java:348)
    at org.red5.io.object.Serializer.writeObjectType(Serializer.java:332)
    at org.red5.io.object.Serializer.writeComplex(Serializer.java:173)
    at org.red5.io.object.Serializer.serialize(Serializer.java:119)
    at org.red5.io.amf.Output.writeObject(Output.java:348)
    at org.red5.io.object.Serializer.writeObjectType(Serializer.java:332)
    at org.red5.io.object.Serializer.writeComplex(Serializer.java:173)
    at org.red5.io.object.Serializer.serialize(Serializer.java:119)
    at org.red5.io.object.Serializer.serialize(Serializer.java:60)
    at org.red5.server.net.rtmp.codec.RTMPProtocolEncoder.encodeNotifyOrInvoke(RTMPProtocolEncoder.java:800)
    at org.red5.server.net.rtmp.codec.RTMPProtocolEncoder.encodeNotifyOrInvoke(RTMPProtocolEncoder.java:747)
    at org.red5.server.net.rtmp.codec.RTMPProtocolEncoder.encodeInvoke(RTMPProtocolEncoder.java:735)
    at org.red5.server.net.rtmp.codec.RTMPProtocolEncoder.encodeMessage(RTMPProtocolEncoder.java:514)
    at org.red5.server.net.rtmp.codec.RTMPProtocolEncoder.encodePacket(RTMPProtocolEncoder.java:147)
    at org.red5.server.net.rtmp.codec.RTMPProtocolEncoder.encode(RTMPProtocolEncoder.java:119)
    at org.red5.server.net.rtmp.codec.RTMPMinaProtocolEncoder.encode(RTMPMinaProtocolEncoder.java:48)
    at org.apache.mina.filter.codec.ProtocolCodecFilter.filterWrite(ProtocolCodecFilter.java:322)
    at org.apache.mina.core.filterchain.DefaultIoFilterChain.callPreviousFilterWrite(DefaultIoFilterChain.java:509)
    at org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1400(DefaultIoFilterChain.java:46)
    at org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.filterWrite(DefaultIoFilterChain.java:808)
    at org.apache.mina.core.filterchain.DefaultIoFilterChain$TailFilter.filterWrite(DefaultIoFilterChain.java:734)
    at org.apache.mina.core.filterchain.DefaultIoFilterChain.callPreviousFilterWrite(DefaultIoFilterChain.java:509)
    at org.apache.mina.core.filterchain.DefaultIoFilterChain.fireFilterWrite(DefaultIoFilterChain.java:501)
    at org.apache.mina.core.session.AbstractIoSession.write(AbstractIoSession.java:494)
    at org.apache.mina.core.session.AbstractIoSession.write(AbstractIoSession.java:439)
    at org.red5.server.net.rtmp.RTMPMinaConnection.write(RTMPMinaConnection.java:308)
    at org.red5.server.net.rtmp.Channel.write(Channel.java:136)
    at org.red5.server.net.rtmp.Channel.write(Channel.java:105)
    at org.red5.server.net.rtmp.RTMPHandler.onInvoke(RTMPHandler.java:428)
    at org.red5.server.net.rtmp.BaseRTMPHandler.messageReceived(BaseRTMPHandler.java:132)
    at org.red5.server.net.rtmp.RTMPMinaIoHandler.messageReceived(RTMPMinaIoHandler.java:164)
    at org.apache.mina.core.filterchain.DefaultIoFilterChain$TailFilter.messageReceived(DefaultIoFilterChain.java:716)
    at org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:434)
    at org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1200(DefaultIoFilterChain.java:46)
    at org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.messageReceived(DefaultIoFilterChain.java:796)
    at org.apache.mina.filter.codec.ProtocolCodecFilter$ProtocolDecoderOutputImpl.flush(ProtocolCodecFilter.java:427)
    at org.apache.mina.filter.codec.ProtocolCodecFilter.messageReceived(ProtocolCodecFilter.java:245)
    at org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:434)
    at org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1200(DefaultIoFilterChain.java:46)
    at org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.messageReceived(DefaultIoFilterChain.java:796)
    at org.apache.mina.core.filterchain.IoFilterEvent.fire(IoFilterEvent.java:75)
    at org.apache.mina.core.session.IoEvent.run(IoEvent.java:63)
    at org.apache.mina.filter.executor.OrderedThreadPoolExecutor$Worker.runTask(OrderedThreadPoolExecutor.java:780)
    at org.apache.mina.filter.executor.OrderedThreadPoolExecutor$Worker.runTasks(OrderedThreadPoolExecutor.java:772)
    at org.apache.mina.filter.executor.OrderedThreadPoolExecutor$Worker.run(OrderedThreadPoolExecutor.java:714)
    at java.lang.Thread.run(Thread.java:680)
Caused by: java.lang.UnsupportedOperationException
    at org.apache.openjpa.kernel.DetachedStateManager.isProvisional(DetachedStateManager.java:760)
    ... 55 more

为什么你认为这是一个序列化问题?因为我在stacktrace中看不到任何与序列化相关的内容。因为在序列化尝试之后,框架挂起在一个无休止的循环中。您还可以从堆栈跟踪中读取它。不知何故,调用了一个“不受支持”的函数。至少我是这么看的。另外,“reflect”的用法对我来说是一个指标,表明在对象序列化过程中有一些方法的查找。这可能不是java的标准序列化程序,而是一些自定义的序列化程序。我不能肯定地说。令人惊讶的是,任何其他实体都可以正常工作,只是这个实体失败了。这不是序列化问题,因为如果它像您所说的自定义序列化程序那样,那么其他对象应该会失败。如果没有看到更多的代码,很难说为什么会发生这种情况。你能把代码放在序列化的地方吗?或者你认为序列化正在发生的地方…哦,还有正在失败的实体…很抱歉,我错过了那个链接。我认为问题在于日历实例。我找到了这个链接。如果你能用一个日期来代替,它应该会起作用。。