2009-10-16 4 views
0

chaque fois que je tente d'appeler mon ejb d'un client, je reçois cette erreur:java.rmi.MarshalException

java.rmi.MarshalException: Failed to communicate. 

    Problem during  marshalling/unmarshalling; nested exception is: 

    java.io.InvalidClassException: com.afrikbrain.util.message.MessageInfo; 

    local  class incompatible: 

    stream classdesc serialVersionUID = 2285009932770474121, 

    local class  serialVersionUID = -2900394430145132451 at  

    org.jboss.remoting.transport.socket.SocketClientInvoker.handleException(SocketClientInvoker 
.java:122) 

pourquoi est-il INTERVENUES? et comment le résoudre?

Répondre

3

La classe locale et la classe distante sont des versions différentes. Pendant le processus de désassemblage, le récepteur ne prend pas en charge la version de protocole de l'expéditeur. Assurez-vous que la classe compilée sur le serveur est la même version de la classe compilée sur le client, donc peut être sérialisée/désérialisée sans problèmes. Je vous suggère de reconstruire à partir de zéro tout le projet et de les redéployer, et de régénérer les stubs.

1

Il semble que votre serveur possède une version différente de l'objet que votre client. Assurez-vous qu'ils utilisent tous les deux le même code pour l'objet com.afrikbrain.util.message.MessageInfo.