Question

J'ai réalisé aujourd'hui que je suis aveugle vient de suivre cette exigence pendant des années sans jamais demander vraiment pourquoi. Aujourd'hui, je suis tombé sur un NotSerializableException avec un objet modèle que je créé à partir de zéro et je assez pris conscience suffit.

On m'a dit que cela était dû à la réplication de session entre les serveurs de charge équilibrée, mais je sais que je l'ai vu d'autres objets à portée de session qui ne mettent pas en œuvre Serializable. Est-ce la vraie raison?

Était-ce utile?

La solution

Il est la vraie raison. Si elle en fait la matière dans la pratique dépend entièrement si le serveur web ou serveur d'applications en fait sérialiser l'objet (ou valider qu'il est sérialisable, mais de façon réaliste la seule façon de le faire est de réellement sérialiser).

La plupart des serveurs d'application ont l'option (au moins) de ne pas être stricte à ce sujet. Si vous n'utilisez pas la charge des serveurs équilibrés qui partagent en fait état, alors vous pourriez avoir vu sans problème.

Autres conseils

Parce que pour être transférés sur un fil dont ils ont besoin d'être serialisable à une forme qui peut être mis sur le fil.

Comme binaire ou XML, JSON ou simillar

Il y a plus d'infos ici ... Si un objet de domaine, pas sérialisable

Je pense que le concept est semblable à leur demande, pourquoi la nourriture solide doit être mâché vers le bas avant d'être avalé pour la digestion. Mais bien sûr, la différence est que la bonne digérée ne peut pas être en tout cas désérialisée.

Je me souviens en utilisant Sun RPC (aujourd'hui appelé ONC RPC) qui effectue un codage XDR parce que les plates-formes / systèmes informatiques représentent leurs données dans leurs formes respectives. Par exemple, big endian vs petit endian.

Mais la machine virtuelle Java, quelle que soit la machine est grand-boutiste, donc boutisme ne devrait pas être une raison.

Structure de données dans la mémoire de l'ordinateur a des pointeurs et tous les éléments d'un objet ne peut pas s'asseoir sur un bloc de mémoire contiguë. Toutefois, lorsque vous passez un objet thro i / o à un autre système, vous ne pouvez pas passer la distribution de la mémoire de cet objet.

Un objet doit être sérialisé avant d'être stockées dans une base de données parce que vous ne souhaitez pas et ne peut pas reproduire le dispositif de changement dynamique de la mémoire système.

Notre couche de représentation des données sur les réseaux sont tous basés flux bits. Par conséquent, lorsque vous souhaitez transmettre des données d'un système à un autre, vous devez convertir les données dimensionnelles représentées en mémoire qui peut être diffusé en continu thro les réseaux octet par octet. En fait, peu à peu, et qui va souvent thro compression et cryptage de sécurité. Compression et routines de chiffrement sont oo-structure aveugle et des flux binaires sont présumés. Les commutateurs réseau sont-aveugles oo structure. transmission de réseau ne voit même pas les bits. Les bits sont codés en un signal de transmission qui est souvent sinusoïdes analogique et ensuite modulé. Ces processus ne fonctionnent pas sur schèmes multidimensionnelle / hiérarchique des données structurées oo.

Je suppose que vous pouvez effectuer l'obscurcissement de niveau d'objet et de cryptage, mais vous devez toujours permettre au système de convertir ceux des flux binaires, en les convertissant en carbonisent grands cours d'eau.

marshalling est quand le berger a un troupeau de brebis et les MARSHALLS thro un pont à une seule brebis sur les eaux troubles. Par conséquent, un signaleur doit marshall nos objets en schèmes série avec des références écrites, de sorte que lorsque le troupeau de moutons d'information émergent de l'autre bout du pont, nous sommes en mesure de les remonter de nouveau dans son schèmes hiérarchique par le conjugué demarshaller . Dans notre cas, nos moutons ne rangea thro juste un pont, mais thro enroulements étroits et précaires et les glissements de terrain où l'équipement de transmission du réseau à chaque tour stocke une copie des brebis mobilisées pour assurer qu'ils sont en mesure de renvoyer la copie dans le cas où l'un des moutons est tombé thro un ravin.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top