JBoss Update 4.2.0.GA auf 4.2.2GA - Problem mit EJB3-Application

sepan

Grünschnabel
Hallo,

ich muss den JBoss-AS von 4.2.0.GA auf 4.2.2GA updaten.
Die Client-Anwendung hat ein einfaches Autoupdate integriert, die über eine Versionsnummer im Build läuft. Beim Update wird der gesamte Client downgeloaded (mitsamt den JBoss-Client-Bibliotheken) entpackt und neu gestartet.
Das ist alles kein Problem, nur die Migration von 4.2.0.GA auf 4.2.2.GA macht Probleme.

Wenn ich die Client-Anwendung mit den Bibliotheken von 4.2.2 kompiliere, kann ich mich nicht auf einen JBoss 4.2.0.GA verbinden (local class incompatible: stream classdesc serialVersionUID = xxxxx, local class serialversionUID = yyyyy).

Wenn ich den 4.2.0er Client starte, kann sich der nicht auf JBoss 4.2.2.GA connecten, um das Update zu holen. Leider funktioniert die Update-Abfrage über ein RMI-Call, nicht über Web (nur der Download geht über HTTP vom Application Server).

Hat jemand eine Idee, wie ich das lösen kann?
 
Kurz: gar nicht. Wenn du Klassen per RMI über die Leitung schickst musst du auf beiden Seiten die gleiche Version (gekennzeichnet durch die SerialVersionUID) der Klasse haben. Wenn nun auf der einen Seite ein Produkt in anderer Version läuft, ist es fast sicher, dass bestimmte Klassen verändert wurden, diese eine neue serialVersionUID bekommen und somit nicht mehr zusammen arbeiten.

Das mach auch Sinn, denn wie willst du eine KLasse deserialisieren, der auf der Empfängerseite vielleicht eine Property fehlt?

Gruß
Ollie
 
Das habe ich befürchtet. Nur hat sich an meinen EJB-Klassen nichts geändert. Lediglich die JBoss-Client-Libraries (und natürlich der ApplicationServer) haben sich geändert.
Da sollte sich ja meiner Meinung nach nicht auf die Anwendung auswirken, oder?

Mit anderen Worten:
- Serverteil im EJB und Clientteil bleiben unberührt (werden nicht mal neu kompiliert).
- Client mit JBoss 4.2.0-Libraries kann sich NUR auf JBoss-AS 4.2.0 verbinden (nicht 4.2.1, 4.2.2, nicht 5.0 etc).

Macht das wirklich Sinn?
 
Zurück