2009-08-18 8 views
2

Nous avons utilisé Spring Remoting dans notre projet depuis un certain temps. Il est utilisé avec d'autres systèmes pour accéder à nos services Web. Nous évoluons actuellement en termes de paramètres pris en charge par le service Web. mais en même temps, nous essayons d'être indépendants de nos consommateurs. Donc, actuellement, ma question porte sur la façon dont fonctionne la sérialisation et la désérialisation lors de l'accès à distance au printemps. Voici les détails:Sérialisation de remoting à ressort et désérialisation

J'ai un service Web exposé à travers Remoting ressort qui a les paramètres suivants dans une classe

  1. Nom
  2. âge
  3. Adresse

Actuellement, tous les consommateurs utiliser les bouchons respectifs et la sérialisation et la désérialisation se produit en conséquence.

Comme je l'ai mentionné, nous avons évolué notre service web et classe respectivement pour contenir les champs suivants maintenant »

  1. Nom
  2. âge
  3. Adresse
  4. pays
  5. dateOfBirth

Cependant, les consommateurs ont toujours de vieux talons ou r stub-jar pour accéder au service Web. Nous avons fait un pic et il semble que, indépendamment des champs nouvellement ajoutés à nos fins, le service de communication à distance continue de bien fonctionner. Je m'attendais à ce qu'il bombarde les consommateurs puisque le nombre de champs a été ajouté. "VEUILLEZ NOTER QUE AUCUN CHAMPS N'A ÉTÉ SUPPRIMÉ/SUPPRIMÉ DE LA CLASSE". Seuls les ajouts ont été faits.

Est-ce que le remoting de printemps gère des champs supplémentaires gracieusement ou je devrais m'attendre à ce qu'il coule? Faites-moi savoir si ma question n'est pas claire à un moment ou à un autre. La dernière question que j'essaie de poser est la suivante: devrais-je m'attendre à ce que mon programme bombarde? Et il ne manque pas actuellement car je ne teste pas quelque chose correctement? Comment le remoting du printemps sérialise et désérialise-t-il les objets qui sont échangés?

+0

Cela n'a rien à voir avec Spring, c'est une question de sérialisation java.io. – skaffman

+0

Spring prend en charge la sérialisation et la dé-sérialisation.Je ne suis pas sûr, si le printemps fait quelque chose au-dessus de ce que java fournit, ou il invoque juste les trucs de base de Java. Je veux juste être clair là-dessus aussi. – Priyank

+0

Non, Spring ne prend pas en charge la sérialisation, il utilise la fonctionnalité de sérialisation fournie par le JRE. – skaffman

Répondre

1

La sérialisation de printemps obéit aux règles de la sérialisation Java.

Vérifiez que le changement a effectivement affecté le serialVersionUID et que vous n'en fournissez pas vous-même, ce qui n'a pas changé.

+0

Merci. J'ai gardé le serialVersionUID inchangé et cela explique clairement pourquoi mes stots à distance et les classes continuent à fonctionner encore. À la votre – Priyank

1

Je pensais que Spring Remoting était basé sur HTTP, pas sur la sérialisation Java. Si tel est le cas, ce sont des paires nom/valeur de paramètre, et tant que vous n'avez pas supprimé les paramètres attendus par les clients existants, ils devraient continuer à fonctionner.

Veuillez vérifier cela, skaffman. Votre connaissance du printemps est excellente, et je suis en vacances en ce moment. Je serais impoli de rester plus longtemps sur l'ordinateur de mon ami et de faire des recherches sur le sujet. Désolé, je ne peux pas être plus utile.

+4

L'invocateur HTTP de Spring utilise toujours la sérialisation Java standard en bas. J'ai été au fond de ses tripes car j'avais besoin de réparer la désérialisation pour OSGi. – SteveD

+0

Ceci est correct, HttpInvoker de Spring fournit des objets java-sérialisés via un transport HTTP. – skaffman

+0

Merci les gars pour toutes les entrées. Il m'a effectivement indiqué dans la bonne direction. – Priyank

Questions connexes