Odserializuj zdalny obiekt do najwęższej dostępnej klasy

Wshared.jar Mam:

<code>abstract class MyParent {

}
abstract class MyClass {
   MyParent getFoo();
}
</code>

server.jar zawiera

<code>abstract class MyChild extends MyParent {

}
abstract class MyClassConcrete {
   MyParent getFoo() {return new MyChild();}
}
</code>

client.jar:

<code>MyParent foo = myClass.getFoo();
</code>

Jeśli wszystkie 3 słoiki znajdują się w jednym programie ładującym, wszystko działa dobrze.

Ale klient i serwer znajdują się w różnych maszynach JVM, podczas gdy:

JVM-1 zawiera:server.jar, shared.jarJVM-2 zawiera:client.jar, shared.jar

Klient nawiązuje połączenie z serwerem. Zwraca serwerMyConcreteClass a Java nie może go deserializować (Klasa nie znaleziono wyjątku).

Co chcę zrobić:

Serwer serializuje klasę i wysyła dane oraz zestaw przodków klasyKlient znajduje najwęższego przodka, którego może deserializować.

I wszystko jest w porządku: mamy wystąpienieMój rodzic na kliencie i tego potrzebujemy.

Nie mogę uwierzyć, że nie ma takich silników. Znasz jeden? Jestem pewien, że zdalne wywołanie powinno być jak najbardziej podobne do połączeń lokalnych.

Dzięki.

questionAnswers(2)

yourAnswerToTheQuestion