Duvida Classes Serializable
09/01/2014 13:44
2
Pessoal,

quando faço constantes consultas a um mesmo registro, aparece um erro estranho e diz que a possível solução é colocar minhas classes como Serializable:

Possible solutions: get(java.io.Serializable), getId(), grep(), getAt(java.lang.String), grep(java.lang.Object), wait()


Quando isso acontece eu reinicio o servidor e tudo se normaliza, o chato é que constantemente eu tenho que ficar reiniciando o servidor.

O problema é que eu não sei como fazer isso e confesso que não sei o impacto de se fazer isso, se possui alguma consequência no desempenho do sistema, se deixa o sistema mais lento, inseguro.

Alguém poderia me ajudar dizendo o impacto dessa alteração no sistema se eu colocasse todas minhas classes como Seriazable, por exemplo.
Tags: Serializable, erro


2
Oi Ovidio, é bastante simples.

Basta declarar susa classes sasim


class SuaClasse implements java.io.Serializable {

}


O impacto vai ser zero, na realidade vocÊ vai ter até mesmo algum ganho. O que ocorre: podem haver entidades que são armazenadas em sua sessão de usuário. O servidor de aplicação muitas vezes a persiste em disco para obtenção posterior, alguns não sabem lidar com isto quando não é implementada a interface Serializable.


0
Henrique obrigado por me ajudar,

minha dúvida era essa ... se teria que fazer modificações em meu programa para suportar esta serialização e se teria impacto no desempenho...

Obrigado por ter me ajudado.

Só mais uma pergunta: qual o critério usado para identificar que uma classe deve ser Serializable ? Posso serializar todas minhas classes indiscriminadamente?
12/01/2014 11:44


1
Oi Ovídio,

você pode se quiser marcar todas as suas classes de domínio como serializable sem problema. Inclusive, na especificação JavaBean diz que estes devem implementar esta interface. A questão principal é: precisa mesmo?

Vejo alguns critérios que você pode usar:

[list]
* A classe de domínio em algum momento irá para a sessão do usuário? Se for, deve ser serializável, pois o servidor de aplicação pode em diversos momentos persistir a sessão em disco e, com isto, enfrentaria problemas na hora de escrever os dados desta classe de domínio.
* O objeto é persistido em disco pela sua aplicação? Se sim, marque-a como serializável.
* O objeto será transmitido pela rede para outros computadores? Se sim, marque-a como serializável.
[/list]



0
Henrique,

muito obrigado mais uma vez.

Era isso que eu tinha dúvida.

Valeu mesmo.
13/01/2014 09:05


0


Kra vendo esse post animei em implementar isso em minhas classes.

Será que alterando algumas classes para Seriazable possuiria alguma interferência junto ao GORM visto que existem informações persistidas no Banco de Dados?

Para ele serializar é independente do GORM ?
14/01/2014 09:56



Ainda não faz parte da comunidade???

Para se registrar, clique aqui.


Aprenda Groovy e Grails com a Formação itexto!

Newsletter Semana Groovy

Assinar

Envie seu link!


Livro de Grails


/dev/All

Os melhores blogs de TI (e em português) em um único lugar!

 
Creative Commons
RSS Grails Brasil é mantido por itexto Consultoria.
Em caso de problemas contacte Henrique Lobo Weissmann (Kico) por e-mail: kico@itexto.com.br
Todo o conteúdo presente neste site adota o Creative Commons como licença padrão.
Ver: 4.14.0
itexto