Bonjour à tous,
J'utilise RMI pour transférer des données d'un serveur à un client java.
Cette méthode fonctionne correctement excepté lorsque j'utilise une librairie .jar.
La compilation côté serveur est OK mais côté client, j'ai le message d'erreur suivant:
<code>
Erreur d'accès à un objet distant
java.rmi.UnmarshalException: error unmarshalling return; nested exception is:
java.io.WriteAbortedException: writing aborted; java.io.NotSerializableException: ij.ImageStack
at sun.rmi.server.UnicastRef.invoke(Unknown Source)
Caused by: java.io.WriteAbortedException: writing aborted; java.io.NotSerializableException: ij.ImageStack
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.readArray(Unknown Source)
at java.io.ObjectInputStream.readObject0(Unknown Source)
at java.io.ObjectInputStream.readObject(Unknown Source)
at sun.rmi.server.UnicastRef.unmarshalValue(Unknown Source)
... 7 more
Caused by: java.io.NotSerializableException: ij.ImageStack
at java.io.ObjectOutputStream.writeObject0(Unknown Source)
at java.io.ObjectOutputStream.defaultWriteFields(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.writeArray(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 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.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
java.lang.NullPointerException
at panelP.setImageStacks(panelP.java:1363)
</code>
Normalement, il faudrait rendre serializable toutes les classes qui transitent sur le réseau mais, là, je ne peux pas parce que la classe est issue d'une library dans laquelle je ne peux rien modifier.
D'abord est ce que c'est possible et si oui, est ce que qqun aurait une solution??
Merki![]()
Partager