【问题标题】:Unable to send message to remote peer local class incompatible: stream classdesc serialVersionUID无法将消息发送到远程对等本地类不兼容:stream classdesc serialVersionUID
【发布时间】:2018-08-21 15:27:14
【问题描述】:

我在定义和不定义serialVersionUID 的情况下执行。 我使用 ehcache 作为我的缓存,我正在尝试复制缓存。 **以下是我的日志**

Severe:   [Replication Thread] WARN net.sf.ehcache.distribution.RMIAsynchronousCacheReplicator - Unable to send message to remote peer.  Message was: RemoteException occurred in server thread; nested exception is: 
java.rmi.UnmarshalException: error unmarshalling arguments; nested exception is: 
java.io.InvalidClassException: org.hibernate.type.AbstractStandardBasicType; local class incompatible: stream classdesc serialVersionUID = -7392726925440390214, local class serialVersionUID = 7995037332590373518 Severe:   java.rmi.ServerException: RemoteException occurred in server thread; nested exception is: 
java.rmi.UnmarshalException: error unmarshalling arguments; nested exception is: 
java.io.InvalidClassException: org.hibernate.type.AbstractStandardBasicType; local class incompatible: stream classdesc serialVersionUID = -7392726925440390214, local class serialVersionUID = 7995037332590373518
at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:389)
at sun.rmi.transport.Transport$1.run(Transport.java:200)
at sun.rmi.transport.Transport$1.run(Transport.java:197)
at java.security.AccessController.doPrivileged(Native Method)
at sun.rmi.transport.Transport.serviceCall(Transport.java:196)
at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:568)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:826)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$0(TCPTransport.java:683)
at java.security.AccessController.doPrivileged(Native Method)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:682)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
at sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(StreamRemoteCall.java:283)
at sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:260)
at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:161)
at net.sf.ehcache.distribution.RMICachePeer_Stub.send(Unknown Source)
at net.sf.ehcache.distribution.RMIAsynchronousCacheReplicator.writeReplicationQueue(RMIAsynchronousCacheReplicator.java:314)
at net.sf.ehcache.distribution.RMIAsynchronousCacheReplicator.replicationThreadMain(RMIAsynchronousCacheReplicator.java:127)
at net.sf.ehcache.distribution.RMIAsynchronousCacheReplicator.access$000(RMIAsynchronousCacheReplicator.java:58)
at net.sf.ehcache.distribution.RMIAsynchronousCacheReplicator$ReplicationThread.run(RMIAsynchronousCacheReplicator.java:389) 
Caused by: java.rmi.UnmarshalException: error unmarshalling arguments; nested exception is: 
java.io.InvalidClassException: org.hibernate.type.AbstractStandardBasicType; local class incompatible: stream classdesc serialVersionUID = -7392726925440390214, local class serialVersionUID = 7995037332590373518

实体类 用户.java

public class User implements Serializable {

private static final long serialVersionUID = -7392726925440390214L;

@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "ID")
private long id;
@Column(name = "USER_NAME")
private String userName;
@Column(name = "USER_ADDRESS")
private String userAddress;

【问题讨论】:

    标签: java hibernate serialization rmi ehcache


    【解决方案1】:

    您正尝试通过 RMI 发送 Hibernate 类型信息,每端使用不同版本的 Hibernate。

    解决方案:使用相同的版本。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-01-28
      • 2015-02-07
      • 1970-01-01
      • 1970-01-01
      • 2018-04-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多