Serializacja w javie

0

Witam

Mam takie pytanie, a właściwie problem. Otóż, mam dwa projekty (które tworzą dwa niezależne programy) w których wykorzystuje te same mechanizmy. Aby były one jednakowe wyrzuciłem je do osobnego projektu i z niego zrobiłem bibliotekę. Klasa która wykorzystuje - nazwijmy ją klasa A implementuje interfejs Serializable. I teraz kiedy wysyłam po RMI klasę A z jednego programu do drugiego otrzymuje błąd że serialVersionUID są różne. Rozumiem że to oznacza to że klasa A wysyłana przez pierwszy projekt jest różna od klasy A odbieranej w drugim programie.

Jeżeli się mylę proszę poprawcie mnie i pomóżcie, co może być tego przyczyną i jak temu zaradzić ?

Pozdrawiam

0

A czy klasa A jest w tym projekcie "commons"? Bo wygląda tak jakbyś skopiował sobie klase i miał ją w 2 miejscach na raz, a tak się nie robi.

0

A czy mógł być doprecyzować czym jest "commons" ?

0

Aby były one jednakowe wyrzuciłem je do osobnego projektu i z niego zrobiłem bibliotekę

ten projekt rozumiem jako projekt "commons" i rozumiem że TYLKO tam jest ta klasa o której mówisz? Bo mam wrażenie że nie.

0

tak tylko tam :) problem już rozwiązałem - chodziło o to że wartości String przed ich ustawieniem, przy deklaracji ustawiałem na null. Ale teraz pojawił się drugi problem, nie wiem czy związany z tym tematem. Wysyłam mój obiekt klasy A z Klienta RMI do Serwera RMI, w serwerze po odebraniu rzutuje go z Object na klase A.
Gdy pobieram z niego wartości na serwerze to mają one taką wartość jak przed inicjacją... I teraz mam takie pytanie: czy przy serializacji potrzebny jest konstruktor który będzie ustawiał te wszystkie wartości ?

0

Problem rozwiązany ! :) mechanizmy Javy (sprawdziłem też dla C# i jest tak samo) nie serializuja pól statycznych. Rzecz banalna, ale trudno ją znaleźć :)

0

Nie no to jest raczej oczywiste że pola static i pola tansient nie są serializowane...

1 użytkowników online, w tym zalogowanych: 0, gości: 1