0

クライアントから ejb を呼び出そうとするたびに、次のエラーが発生します。

  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)

なぜそれが起こっているのですか?そしてそれを解決する方法は?

4

2 に答える 2

3

ローカル クラスとリモート クラスは異なるバージョンです。アンマーシャリング プロセス中、受信側は送信側のプロトコル バージョンをサポートしません。サーバーでコンパイルされたクラスがクライアントでコンパイルされたクラスと同じバージョンであることを確認してください。これにより、問題なくシリアライズ/デシリアライズできます。すべてのプロジェクトをゼロから再構築して再デプロイし、スタブを再生成することをお勧めします。

于 2009-10-16T14:41:29.770 に答える
1

サーバーには、クライアントとは異なるバージョンのオブジェクトがあるようです。com.afrikbrain.util.message.MessageInfo両方がオブジェクトに対して同じコードを使用していることを確認してください。

于 2009-10-16T14:42:13.223 に答える