2010-07-30 8 views
1

j'ai une classe PersistenceCapableobjets Stockage en séance

@PersistenceCapable(identityType = IdentityType.APPLICATION) 
public class MyClass 
{ 
@PrimaryKey 
@Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY) 
private Long id; 
     .......... 
     .......... 
} 

Dans mon servlet, je dois stocker objet de cette classe en session

............ 
MyClass u = new MyClass(); 
...... 
...... 
HttpSession session = req.getSession(true); 
session.setAttribute("SV", u); 
........ 

Je reçois java.lang.RuntimeException: java.io.NotSerializableException:

Qu'est-ce ce?

+0

Pouvez-vous rendre votre classe PersistenceCapable Serializable? –

Répondre

4

Les sessions peuvent être temporairement stockées sur le disque ou migrées vers un autre serveur d'applications. Afin de s'assurer que les objets de la session peuvent être manipulés dans ces situations, ils doivent être identifiables. Vous pouvez marquer cela en implémentant l'interface Serializable:

import java.io.Serializable; 

public class MyClass implements Serializable { 
} 
+0

Pouvez-vous me montrer où je peux écrire le drapeau pour le rendre sérialisable? – Manjoor

+0

@Manjoor - 'classe publique MyClass implémente Serializable' –

0

Je suppose que mettre un tas d'annotations dans votre classe ne permet pas de mettre en œuvre l'interface Serializable. Pourquoi devrait-il? Do public class MyClass implements Serializable { ...

+0

il pourrait, s'il y avait un processeur d'annotation présente qui a modifié le code source. Mais je suppose qu'il n'y a pas –

+0

Dans l'exemple d'OP nous avons: 'MyClass u = new MyClass(); ...... HttpSession session = req.getSession (true); 'qui ne laisse pas beaucoup de place au processeur d'annotation –

1

rsp is right: Serializable est la bonne réponse, mais l'implémentation de Serializable n'est que la première étape. Par exemple. vous devez également rendre tous les champs Sérialisables ou transitoires.

Lire l'un des manytutorialsaboutJavaSerialization, ou le meilleur de tous: acheter Effective Java par Joshua Bloch et lire tous, y compris les 4 chapitres sur la sérialisation.

Questions connexes