2015-02-05 2 views
1

Я новичок в RMI, и я пытался вернуть вектор пользовательского класса клиенту. Я получаю отменное исключение.Возвращение вектора Java от сервера к клиенту с использованием RMI

Here is my code.

Исключение я получаю: -

java.rmi.UnmarshalException: error unmarshalling return; nested exception is: 
      java.io.WriteAbortedException: writing aborted; java.io.NotSerializableException: Text 
      at sun.rmi.server.UnicastRef.invoke(Unknown Source) 
      at HelloServerImplementation_Stub.viewTexts(Unknown Source) 
      at HelloClient.main(HelloClient.java:30) 
    Caused by: java.io.WriteAbortedException: writing aborted; java.io.NotSerializableException: Text 
      at java.io.ObjectInputStream.readObject0(Unknown Source) 
      at java.io.ObjectInputStream.readArray(Unknown Source) 
      at java.io.ObjectInputStream.readObject0(Unknown Source) 
      at java.io.ObjectInputStream.defaultReadFields(Unknown Source) 
      at java.io.ObjectInputStream.readSerialData(Unknown Source) 
      at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source) 
      at java.io.ObjectInputStream.readObject0(Unknown Source) 
      at java.io.ObjectInputStream.readObject(Unknown Source) 
      at sun.rmi.server.UnicastRef.unmarshalValue(Unknown Source) 
      ... 3 more 
    Caused by: java.io.NotSerializableException: Text 
      at java.io.ObjectOutputStream.writeObject0(Unknown Source) 
      at java.io.ObjectOutputStream.writeArray(Unknown Source) 
      at java.io.ObjectOutputStream.writeObject0(Unknown Source) 
      at java.io.ObjectOutputStream.access$300(Unknown Source) 
      at java.io.ObjectOutputStream$PutFieldImpl.writeFields(Unknown Source) 
      at java.io.ObjectOutputStream.writeFields(Unknown Source) 
      at java.util.Vector.writeObject(Unknown Source) 
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
      at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 
      at java.lang.reflect.Method.invoke(Unknown Source) 
      at java.io.ObjectStreamClass.invokeWriteObject(Unknown Source) 
      at java.io.ObjectOutputStream.writeSerialData(Unknown Source) 
      at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source) 
      at java.io.ObjectOutputStream.writeObject0(Unknown Source) 
      at java.io.ObjectOutputStream.writeObject(Unknown Source) 
      at sun.rmi.server.UnicastRef.marshalValue(Unknown Source) 
      at sun.rmi.server.UnicastServerRef.dispatch(Unknown Source) 
      at sun.rmi.transport.Transport$1.run(Unknown Source) 
      at sun.rmi.transport.Transport$1.run(Unknown Source) 
      at java.security.AccessController.doPrivileged(Native Method) 
      at sun.rmi.transport.Transport.serviceCall(Unknown Source) 
      at sun.rmi.transport.tcp.TCPTransport.handleMessages(Unknown Source) 
      at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(Unknown Source) 
      at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(Unknown Source) 
      at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) 
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) 
      at java.lang.Thread.run(Unknown Source) 
+0

Не допускайте исключения и другие материалы в другом месте. Вопрос, который является частью вопроса, должен быть включен в вопрос. – EJP

ответ

5

Причиной исключения является

Caused by: java.io.NotSerializableException: Text 
       at java.io.ObjectOutputStream.writeObject0(Unknown Source) 

Реализовать Serializable интерфейс в вашем Text классе.

class Text implements Serializable{ 

} 
Смежные вопросы