Session beans em hashtables

Na minha aplicação web até agora, eu estava conseguindo gravar e ler beans de uma session sem maiores problemas. Agora surgiu uma situação em que eu preciso passar uma coleção de beans. Achei no livro da Wrox um exemplo que usava Hashtable para fazer isso. Só que não funciona!

Ocorre uma exceção assim quando tento gravar a Hashtable na sessão:

java.io.NotSerializableException: xxxxx.xxxx.xxxx.Language

A hashtable contém vários destes objetos Language.

Acontece que esse mesmo objeto Language quando é gravado sozinho na session funciona perfeitamente!

Alguém sabe por que isso acontece? Só por que ele tá encapsulado num Hashtable? Alguma solução melhor que usar Hashtable?

Obrigado.

Filipi P. Silveira

esse objeto precisa implementar a interface serializable, para poder trafegar pela rede.

[]'s

[quote=jgbt]esse objeto precisa implementar a interface serializable, para poder trafegar pela rede.

[]'s
[/quote]

Sim, isso eu sei e já arrumei. 8)

A questão é por que quando eu gravava o objeto sozinho na seção ele funcionava perfeitamente? Por que agora vou ter que alterar várias classes para implementar Serializable… :?

Valeu!

Filipi Silveira

Na verdade ele deve funcionar normalmente,
Vc deve estar fazendo errado no momento de recuper o objeto no jsp.

Veja o exemplo:

//Na Action:

LinkedHashMap recursoEmpresaMap = RecursoEmpresaBD.getInstance().selectRecursosFromEmpresa(recursoEmpresaVO  );
            
//COLOCA RESULTADO DA CONSULTA NO BEAN 
session.setAttribute("recursoEmpresaMap", recursoEmpresaMap);

Agora para recuperar o valor no jsp é um pouco diferente do que com list:


<logic:present name="recursoEmpresaMap" scope="session">

<logic:iterate name="recursoEmpresaMap" id="recursoEmpresaMap" >" >


<bean:write name="recursoEmpresaMap"  property="value.nom_usuario"/>
<bean:write name="recursoEmpresaMap" property="value.des_email"/>
...

Observe que diferentemente do List vc deve colocar a palavra “value”