Frage

erkennen ich heute, dass ich blind gefolgt gerade diese Forderung seit Jahren, ohne jemals wirklich zu fragen, warum. Heute lief ich über eine NotSerializableException mit einem Modellobjekt von Grund auf neu erstellt und mir wurde klar genug genug ist.

wurde ich gesagt, dies ist wegen der Sitzungsreplikation zwischen Load-Balancing-Server, aber ich weiß, ich habe in Sitzungsbereich andere Objekte zu sehen, die Serializable nicht implementieren. Ist das der wahre Grund?

War es hilfreich?

Lösung

Es ist der wahre Grund. Wenn es tatsächlich Sache in der Praxis hängt ganz davon ab, ob der Web-Server oder Anwendungsserver wird in der Tat serialize das Objekt (oder bestätigen, dass es serialisierbar ist, aber realistisch gesehen die einzige Möglichkeit, das zu tun, ist es tatsächlich zu serialisiert).

Die meisten Anwendungsserver haben die Möglichkeit (zumindest) nicht streng zu sein. Wenn Sie nicht Lastenausgleich Server verwenden, die tatsächlich Aktie Zustand, dann könnten Sie es ohne ein Problem gesehen haben.

Andere Tipps

Weil, um über einen Draht übertragen werden sie serialisable in eine Form sein müssen, die auf den Draht gesetzt werden kann.

Wie Binär- oder XML, JSON oder simillar

Es gibt weitere Informationen hier ... Sollte ein Domain-Objekt, nicht serialisierbar sein ?

ich glaube, das Konzept ähnlich ist gefragt wird, warum muß feste Nahrung gekaut werden, bevor für die Verdauung verschluckt werden. Aber natürlich, der Unterschied ist, dass verdauen gut sowieso nicht deserialisiert wird in kann.

Ich erinnere mich, Sun RPC (heute ONC RPC genannt), die XDR-Codierung durchführt weil Computerplattformen / Systeme stellen ihre Daten in ihren jeweiligen Formen. Zum Beispiel, Big-Endian-vs kleinem Endian.

Aber die JVM, unabhängig von Maschine ist Big-Endian, so endianness kein Grund sein sollte.

Die Datenstruktur im Speicher des Computers hat Zeiger und alle Elemente eines Objekts auf einem zusammenhängenden Speicherblock nicht sitzen. Aber wenn Sie ein Objekt thro i / o auf ein anderes System übergeben, können Sie nicht die Speicherverteilung des Objekts übergeben.

Ein Objekt Bedürfnisse serialisiert werden, bevor sie in einer Datenbank gespeichert werden, weil Sie nicht und wollen nicht die sich dynamisch ändernden Anordnung von Systemspeicher replizieren.

Unsere Datendarstellungsschicht auf die Netze sind alle Bitstrom-basiert. Wenn Sie also von einem System zum anderen Daten übergeben wollen, müssen Sie die dimensionalen Daten im Speicher zu einem dargestellten konvertieren, die thro der Netzwerk Byte für Byte gestreamt werden können. Eigentlich Bit, nach und nach, und die oft geht thro Kompression und Sicherheitsverschlüsselung. Komprimierungs- und Verschlüsselungsroutinen sind oo-Struktur blind und Bitströme vermutet werden. Netzwerk-Switches sind oo-structure-blind. Übertragung über das Netzwerk nicht einmal Bits sehen. Die Bits werden in ein Sendesignal codiert, die oft analog Sinusoiden und dann modulierten. Diese Verfahren funktionieren nicht auf mehrdimensionale / hierarchischen Schemata von oo-strukturierten Daten.

Ich denke, man Objektebene Verschleierung und Verschlüsselung durchführen könnte, aber Sie haben immer noch das System zu ermöglichen, diejenigen zu Bitströmen umzuwandeln, indem man sie zu verkohlen Umwandeln einer ersten ströme.

Die Rangierung ist, wenn der Hirte einer Herde von Schafen hat und marshalls sie thro einem einzigen Schafe Brücke über unruhigen Gewässern. Daher hat ein Einweiser zu marshall unsere Objekten in serielle Schemata mit Referenzen geschrieben, so dass, wenn die Menge der Informationen Schafe vom anderen Ende der Brücke entstehen, können wir sie wieder in ihre hierarchischen Schemata durch die Konjugat-demarshaller wieder zusammenzusetzen . In unserem Fall sind unsere Schafe nicht nur eine Brücke vermarshallten thro aber thro zu verengen und prekäre Wicklungen und Erdrutsche in denen die Netzwerk Übertragungstechnik bei jeder Umdrehung speichert eine Kopie der Marshalled Schafe, um sicherzustellen, sie sind in der Lage die Kopie im Fall einen der erneut zu senden Schafe haben thro eine Schlucht gefallen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top