Log4j e Serializable

Oi,

1 - O Log4j funciona bem com objectos que implementam o Serializable?

Se sim, como é possível? Se um cliente recebe um objecto que implementa o Serializable do lado do servidor, como é que o cliente interpreta as instruções do log4j do objecto?

Obrigado.

Acho que o log4j e o Serializable não têm nada a ver um com o outro.

O único cuidado que você deve ter é que uma referência ao log4j em um objeto pertencente a uma classe que implementa Serializable deve ser estática ou “transient”; log4j não implementa Serializable, porque não faz sentido.

Deixem-me explicar melhor, para não levar a questão para o problema do ObjectOutputStream, como está explicado noutro post.

Eu tenho um objecto que implementa o Serializable, que é populado antes de ser enviado para outro componente. O envio do objecto é feito via RMI.

thingol,

eu percebo a tua resposta com a questão do transient. Mas, em relação à variável estática, não estou a perceber. Podes-me explicar melhor?

Obrigado,
Pedro

O que o processo de serialização faz é pegar todos os campos (que não são “transient” ou “static”) e convertê-los para um formato especial, que pode ser estudado no fonte de ObjectOutputStream.

Olá pedro,
não entendi muito bem o seu probelma mas como vc disse vc esta populando Bean e enviando atraves de RMI para o cliente , o cliente precisa saber do modelo da sua interface ou seja vc precisa implementação do Bean do lado cliente senão ele lancará a exception Unmarshal que não entenderá o objeto que foi enviando , lembrando que RMI é passagem por valor …

ramilani12,
está correcto o que tu disseste, e faço isso.

O programa que falo, trata-se de um programa grande, feito por uma equipa, por isso é-me difícil testar o caso isoladamente.

O problema que me intriga é que, o Bean usa o log4j, e o Bean é enviado do servidor para o cliente através de RMI. Eu estava à espera que houvesse uma excepção, mas o programa funciona correctamente.

Obrigado