2010-10-11 3 views
0

Le serveur démarre très bien, mais l'erreur se produit lorsque je tente d'ajouter un travail à partir du Client.I obtenir le erreur suivantarguments Marshalling exception

java.rmi.MarshalException: error marshalling arguments; nested exception 
is: 

    java.io.NotSerializableException: snaq.db.CacheConnection 
    at Production_Stub.addGRN(Production_Stub.java:1515) 
    at ProductionServices.addGRN(ProductionServices.java:21) 
    at PlanningServices.addGRN(PlanningServices.java:22) 
    at Planning.addtoGrn(Planning.java:9949) 
    at Planning.saveAllBundleRelatedTables(Planning.java:9582) 
    at Planning.savebundlesheet(Planning.java:9251) 
    at Planning_Skel.dispatch(Planning_Skel.java:6555) 
    at sun.rmi.server.UnicastServerRef.oldDispatch(UnicastServerRef.java:342) 
    at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:207) 
    at sun.rmi.transport.Transport$1.run(Transport.java:148) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at sun.rmi.transport.Transport.serviceCall(Transport.java:144) 
    at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:460) 
    at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:701) 
    at java.lang.Thread.run(Thread.java:534) 
    Caused by: java.io.NotSerializableException: snaq.db.CacheConnection 
    at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1059) 
    at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:278) 
    at Production_Stub.addGRN(Production_Stub.java:1513) 
    ... 14 more 

Pls me donner la solution ..

Répondre

1

Qu'est-ce qui se passe ici est que l'un des objets que vous essayez d'envoyer sur RMI est une instance de la classe snaq.db.CacheConnection, ou (plus probablement) contient une référence à un endroit quelque part.

Cela ne va pas fonctionner. La classe CacheConnection n'est pas sérialisable et il y a de bonnes chances qu'elle ne puisse pas être sérialisée.

Un remède possible pour cela est de marquer le champ (ou les champs) de type CacheConnection dans les classes que vous essayez d'envoyer comme transient.

Questions connexes