2010-10-11 76 views
0

服務器啓動正常,但是當我嘗試從Client.I添加任何工作得到 以下錯誤編組參數異常

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 

請給我的解決方案出現錯誤 ..

回答

1

這裏發生的事情是,您嘗試通過RMI發送的對象之一是snaq.db.CacheConnection類的實例,或者(更可能)包含對某個地方的引用。

這是行不通的。 CacheConnection類不可序列化,並且很有可能無法序列化。

一個可能的解決方法是標記類型CacheConnection的字段(或字段),您嘗試發送的類爲transient