Serialisierung: Laden von Objekten - Risiken?

SimProtect

Aktives Mitglied
Hallo Leute,

Ich habe eine Frage zur Verwendung des Interfaces Serializable.

Bisher haben wir serialisierbare Objekte ausschließlich für die Kommunikation zwischen Servern und Clients verwendet - also für Objekte, die direkt serialisiert und zeitnahe wieder deserialisiert werden.

Nun sollte ich in alle kürze ein kleines, internes Tool schreiben. Bestandteil dieses Tools ist es u.a., dass man das verwendete Objektnetz speichern und auch wieder laden kann.

Da ich keine Freigabe für die Verwendung von externen Bibliotheken habe, bin ich auf Java-Bordmittel angewiesen (Java Version 8 Update 51).

Die Serialisierung als XML kann leider nicht in frage, da ich dafür öffentliche, parameterloser Konstruktoren "hinterlegen" müsste, was die geforderte "Architektur" des Tools nicht gestattet.

Daher - und auch aus Zeitmangel - kam ich auf die Idee, die Objekt direkt zu serialisieren und in eine Datei zu pressen bzw. aus dieser Datei wieder zu deserialiseren.

Das funktioniert soweit tadellos (ich weiß, dass die API die Empfehlung ausspricht, man solle einen parameterlosen Konstruktor hinterlegen) und auch komplexe Objektnetze werden korrekt gespeichert und geladen.

Nun wurde mir jedoch die Befürchtung mitgeteilt, dass es damit Probleme geben könnte, wenn sich zwischen einem Speichern-Vorgang und einem Laden-Vorgang die JavaVersion ändern würde:

Bei uns ist das Problem, dass Java über ein zentrales Repository bereitgestellt wird. Also sowohl JRE, als auch JDK liegen an einer zentralen Stelle und werden auch zentral verwaltet. Wird also entschieden, dass wir eine andere Version verwenden, so ist diese Verwendung sofort wirksam. Die Verwendung einer eigenen JavaVersion ist nicht gestattet.

Jetzt ist meine Frage:
Kann folgende Situation eintreten?:
Ein Objektnetz wird in der Version A gespeichert und das Programm beendet. Java wird auf Version B geupdated; Nach einem Neustart kann das Objektnetz nicht mehr wiederhergestellt werden.


Entschuldigt bitte, wenn das eine blöde Frage ist - ich bin heute nicht wirklich auf der Höhe. Vielleicht habe ich daher auch eine naheliegendere Lösung einfach übersehen.

Beste Grüße
 

stg

Top Contributor
Die De-/Serialisierung ist standardisiert, da wird es also normalerweise keine Probleme geben. Du kannst also eine jetzt mit Java Version X serialisierte Objekte auch mit Java Version Y wieder einlesen.
Probleme kann es geben, wenn sich die Implementierungen der serialisierten Objekte geändert hat, aber das liegt ja auf der Hand. Insbesondere musst du da aufpassen, wenn du "fremde" Klassen serialisierst, also z.B. irgendwelche Swing-Komponenten oder so. Ändert sich hier die Implementierung beim Java-Update, dann hast du ein Problem. Serialisierst du aber nur dein eigenes Data-Model, dann musst du dir keine Sorgen machen.
 

nvidia

Bekanntes Mitglied
[...]
Jetzt ist meine Frage:
Kann folgende Situation eintreten?:
Ein Objektnetz wird in der Version A gespeichert und das Programm beendet. Java wird auf Version B geupdated; Nach einem Neustart kann das Objektnetz nicht mehr wiederhergestellt werden.

[...]

Bzgl. der JDK eigenen Klassen sollte ein Versionsupdate die Serialisierung nicht torpedieren, es sei denn Oracle führt eine rückwärtsinkompatible Änderung an der Serialisierungsmaschinerie durch. Viel wichtiger ist es jedoch sich Gedanken darüber zu machen welche Änderungen an den Klassen dazu führen das diese auf einer der beteiligten Seite nicht mehr verarbeitet werden kann. Dazu gibt es hier https://docs.oracle.com/javase/8/docs/platform/serialization/spec/serialTOC.html aber genug Informationen.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
B Std-Serialisierung - Speichern/Laden geht nur auf einem Rechner Java Basics - Anfänger-Themen 17
D Problem mit der Serialisierung Java Basics - Anfänger-Themen 31
M Serialisierung in Java Java Basics - Anfänger-Themen 10
C Java Applet Fragen: Serialisierung, Excel import Java Basics - Anfänger-Themen 2
I Input/Output Alternative zur Serialisierung/ ImageJ Objecte Java Basics - Anfänger-Themen 7
W Nullpointer bei Objekt Serialisierung mit ArrayList<byte[]> etc. Java Basics - Anfänger-Themen 2
V Java Serialisierung Java Basics - Anfänger-Themen 2
O Objekt Listen serialisierung und deserialisieren Java Basics - Anfänger-Themen 5
U Serialisierung Probleme bei Umsetzung Java Basics - Anfänger-Themen 26
V Serialisierung Umbennung einer Klasse Java Basics - Anfänger-Themen 2
G Input/Output Serialisierung oder Datenbank Java Basics - Anfänger-Themen 6
K Input/Output Serialisierung Java Basics - Anfänger-Themen 7
P Serialisierung - Objekte vergleichen Java Basics - Anfänger-Themen 4
J Input/Output Serialisierung Java Basics - Anfänger-Themen 6
K Serialisierung: speichern und auslesen, auslesen klappt nicht Java Basics - Anfänger-Themen 14
W Problem mit Serialisierung von jTable Java Basics - Anfänger-Themen 15
E Serialisierung - Exception? Java Basics - Anfänger-Themen 21
T Collections (De)-Serialisierung meines HashSets Java Basics - Anfänger-Themen 3
J Input/Output Serialisierung Java Basics - Anfänger-Themen 6
W Problem mit Serialisierung und TableModel Java Basics - Anfänger-Themen 3
F Sonderzeichen bei XML Serialisierung nicht konvertieren Java Basics - Anfänger-Themen 7
O Serialisierung: Object abspeichern und aufrufen Java Basics - Anfänger-Themen 6
L Java Serialisierung Singleton Java Basics - Anfänger-Themen 6
Luk10 Serialisierung bei schon vorhandener Datei Java Basics - Anfänger-Themen 15
I Serialisierung ClassNotFound Java Basics - Anfänger-Themen 8
S serialisierung Java Basics - Anfänger-Themen 3
E Alternativen zur binären Serialisierung ? Java Basics - Anfänger-Themen 9
J Serialisierung - Array-Objekt serialisieren/deserialisieren Java Basics - Anfänger-Themen 6
G Frage zu Serialisierung Java Basics - Anfänger-Themen 4
M Serialisierung erstes Beispiel Java Basics - Anfänger-Themen 4
A Per Serialisierung speichern Java Basics - Anfänger-Themen 2
DStrohma Problem mit Serialisierung Java Basics - Anfänger-Themen 3
T Threads und Serialisierung Java Basics - Anfänger-Themen 4
Z Serialisierung vs. Sicherheit Java Basics - Anfänger-Themen 2
R Serialisierung von Objekten Java Basics - Anfänger-Themen 12
S Serialisierung Java Basics - Anfänger-Themen 8
G Objekt Serialisierung Java Basics - Anfänger-Themen 3
P Serializable - Serialisierung Java Basics - Anfänger-Themen 5
P Collection Vector speichern mittels Serialisierung? Java Basics - Anfänger-Themen 2
I Dateien aus dem Resource Folder laden Java Basics - Anfänger-Themen 2
I Klassen von einem package laden, Statisches Feld auslesen und Objekt erstellen Java Basics - Anfänger-Themen 8
I SWT Plattformunabhängig laden - verschiedene SWT .jar laden Java Basics - Anfänger-Themen 0
C XML Datei speichern und laden Java Basics - Anfänger-Themen 18
J Alle Dateien aus einem Verzeichnis laden Java Basics - Anfänger-Themen 10
I Datei als Stream aus Ressource laden? Java Basics - Anfänger-Themen 2
M Tabellen- Daten laden Java Basics - Anfänger-Themen 2
K File (png) in Image laden Java Basics - Anfänger-Themen 3
L Liste in anderem Thread laden Java Basics - Anfänger-Themen 1
N Zwei Daten (Datum) miteinander vergleichen, abspeichern, laden Java Basics - Anfänger-Themen 4
S Bilder in .jar Datei laden Java Basics - Anfänger-Themen 10
M Datenbank in jTable Laden Java Basics - Anfänger-Themen 49
S Kann keine Bilder laden? Java Basics - Anfänger-Themen 9
C Problem: PC ohne Internet und keine Möglichkeit Programme zu laden Java Basics - Anfänger-Themen 5
L Liste in anderem Thread laden Java Basics - Anfänger-Themen 0
L Fehler beim laden eines Icons Java Basics - Anfänger-Themen 3
L Resourcen laden klappt nicht Java Basics - Anfänger-Themen 2
L Speichern und Laden Java Basics - Anfänger-Themen 7
F File von Windowsfreigabe laden Java Basics - Anfänger-Themen 1
H Interface Objekte speichern und laden (serialisieren/deserialisieren) Java Basics - Anfänger-Themen 1
H Image laden Java Basics - Anfänger-Themen 4
B Image laden im GridBagLayout Java Basics - Anfänger-Themen 3
D Laden und leeren von Comboboxen Java Basics - Anfänger-Themen 8
D NPE beim laden von Daten aus MySQL Java Basics - Anfänger-Themen 9
B Klassen Klasse dynamisch laden. Java Basics - Anfänger-Themen 8
F Daten auf Webserver laden - wiederholen bei Fehler Java Basics - Anfänger-Themen 0
R Eine Arrayliste in XML abspeichern und laden können Java Basics - Anfänger-Themen 7
J App auf einen Webserver laden Java Basics - Anfänger-Themen 14
S Gespeichertes aus ArrayList laden mithilfe der For-Schleife Java Basics - Anfänger-Themen 12
C Problem beim laden eines BufferedImage Java Basics - Anfänger-Themen 2
C Klassen aus einem Package ermitteln und per Laufzeit laden Java Basics - Anfänger-Themen 17
S LWJGL - Matrix vom Matrixstack laden Java Basics - Anfänger-Themen 3
Seikuassi Objekte in Datei reihenweise speichern/laden Java Basics - Anfänger-Themen 3
W (XML/XSL) Daten aus Eclipse in eine Klasse Laden. Java Basics - Anfänger-Themen 1
F Operatoren Enum aus Textdabei laden Java Basics - Anfänger-Themen 3
B Listener beim Laden (deserialize) wieder hinzufügen bzw. mitspeichern? Java Basics - Anfänger-Themen 3
T Android App: Laden dauert lange Java Basics - Anfänger-Themen 1
I Bild aus Bereich laden Java Basics - Anfänger-Themen 3
S Aus einer Klasse eine andere laden Java Basics - Anfänger-Themen 6
C Daten speichern und laden Java Basics - Anfänger-Themen 6
C Bild ins Frame laden und Objekte drüber legen Java Basics - Anfänger-Themen 1
E Bild per Verzeichnis/JFileChooser auf JPanel laden Java Basics - Anfänger-Themen 13
B Bilder laden und drauf zugreifen[Eclipse] Java Basics - Anfänger-Themen 9
M Datei zu DropBox laden Java Basics - Anfänger-Themen 2
M Website im Hintergrund laden Java Basics - Anfänger-Themen 5
M Icon laden und anzeigen Java Basics - Anfänger-Themen 2
L Termin in Array speichern/laden Java Basics - Anfänger-Themen 21
K Transparents Bild laden -> Fehlermeldung Java Basics - Anfänger-Themen 6
T Bild laden Java Basics - Anfänger-Themen 7
S Image in Panel laden Java Basics - Anfänger-Themen 12
L Input/Output Sortieren Speichern Laden von ArrayListe Java Basics - Anfänger-Themen 14
H JButton - Icon(.png) aus resources laden Java Basics - Anfänger-Themen 23
J Laden von Dateien Java Basics - Anfänger-Themen 19
K ImageIcon laden Java Basics - Anfänger-Themen 6
M Problem mit null pinterexception beim laden von Bildern Java Basics - Anfänger-Themen 20
J NullPointerException bei Laden von Bilddatei Java Basics - Anfänger-Themen 16
C Automatisches Ausfuehren einer Funktion beim Laden eines Jar files Java Basics - Anfänger-Themen 3
L Applet: Laden unterbricht den Browserfokus (scrollen) Java Basics - Anfänger-Themen 2
algebraiker Nur Klassen aus einem bestimmten Jar laden Java Basics - Anfänger-Themen 16
B Applet - Laden eines Java-Fensters bricht ab Java Basics - Anfänger-Themen 6
N Bilddatei laden Java Basics - Anfänger-Themen 42

Ähnliche Java Themen

Neue Themen


Oben