Problema
java.io.NotSerializableException: org.hibernate.util.MarkerObject
Ao utilizar o a4j:keepAlive nos arquivos jsf, o mesmo exige que o Managed Bean e suas dependências implementem Serializable. Porém, a classe MarkerObject do hibernate (versão 3.3.2.GA) não implementa.
Solução
Implementar Serializable na classe MarkerObject
1) Edite o arquivo (hibernate-distribution-3.3.2.GA\project\core\src\main\java\org\hibernate\util\MarkerObject.java).
2) Implemente Serializable na classe. Deve ficar assim:
import java.io.Serializable;
public class MarkerObject implements Serializable{
3) Execute javac MarkerObject.java. Isso vai gerar o arquivo MarkerObject.class.
4) Descompacte o arquivo (hibernate-distribution-3.3.2.GA\hibernate3.jar).
5) Substitua o arquivo (hibernate3\org\hibernate\util\ MarkerObject.class) pelo arquivo .class gerado no passo 3.
6) Gere o arquivo .jar com (jar cvfm) ou utilize um programa que faça compactação jar.
A raiz do novo arquivo hibernate3.jar deve ser igual ao original com os seguintes diretórios: META-INF e org.
7) Substitua o arquivo hibernate3.jar do diretório lib da sua aplicação ou do seu JBoss pelo arquivo gerado no passo 5.
Você pode utilizar o exemplo acima para fazer outras customizações no código fonte do hibernate.
Assinar:
Postar comentários (Atom)
Nenhum comentário:
Postar um comentário