Исключительный аргумент - PullRequest
       4

Исключительный аргумент

0 голосов
/ 11 октября 2010

Сервер нормально запускается, но возникает ошибка когда я пытаюсь добавить любую работу из клиента. Я получаю следующая ошибка

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 Ответ

1 голос
/ 11 октября 2010

Здесь происходит то, что один из объектов, который вы пытаетесь отправить через RMI, является экземпляром класса snaq.db.CacheConnection или (что более вероятно) содержит ссылку на один из них.

Это не сработает. Класс CacheConnection не сериализуем, и есть хороший шанс, что его нельзя сделать сериализуемым.

Возможное решение этой проблемы - пометить поле (или поля) типа CacheConnection в классах, которые вы пытаетесь отправить, как transient.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...