Prevayler

3 respostas
velo

Bom dia pessoal,

Seguinte, toh tentando usar o prevayler, mas toh fazendo alguma coisa muuuito errada.

Eu toh usando a serialização em XML… enquanto eu rodo o meu programa eu vejo o XML aumentando de tamanho, trazendo + detalhes, vejo o garfo se expandindo como esperado. Quando fecho, vejo que tudo que não tinha sido gravado ainda vai pro HD. Mas, como tudo tem um mas… quando eu rodo o meu aplicativo denovo ele simplesmente perde tudo. Ele começa tudo do 0.

Eu fiz uma persistence factory que é a responsável por manter a thread que faz o snapshot e por inicializar o prevayler. O código está em anexo, se alguem puder me ajudar…

VELO

3 Respostas

Ironlynx
Velo, o q vc tah usando quando vc gera o xml?Eu uso XStream.Exemplo: digamos q vc pega os dados que um user digitou num form ou algo assim,exemplo tosco, só para te dar uma idéia: Usuario usuario=(Usuario)session.getAttribute("usuario");
try{
 UsuarioRenovaCadastro u=new UsuarioRenovaCadastro();
 u.setUsuario(usuario);
   u.setNomeUsuario(request.getParameter("nome"));
   u.setEndereco(request.getParameter("endereco"));
   u.setBairro(request.getParameter("bairro"));
   u.setCidade(request.getParameter("cidade"));
   u.setEstado(request.getParameter("estado"));
   u.setCep(request.getParameter("cep"));
   u.setComentario(request.getParameter("comentario"));
   factory.configureSnapshotManager(new XStreamSnapshotManager(u,"C:/BaseDeRequisições") {
                protected XStream createXStream() {
                    XStream xstream = new XStream();
                    xstream.alias("professor", UsuarioRenovaCadastro.class); //faz o XML ficar identado.
                    return xstream;
                }
        });
     // Cria o prevayler 
   Prevayler prevayler = factory.create(); 
   
   prevayler.takeSnapshot(); 
        }
  catch(Exception me){
   me.printStackTrace();
   System.out.println("Merda Exception!Não deu para gerar o XML!");
  }
Ah, essa factory é só instanciar antes: PrevaylerFactory factory = new PrevaylerFactory();

Eu sempre usava + ou- assim e nunca deu problemas.A base rodava legal...

velo

Ironlynx:
Velo, o q vc tah usando quando vc gera o xml?Eu uso XStream.

Eu tava usando o XmlSnapshotManager.

Mudei o meu programa pra rodar com o XStreamSnapshotManager assim como o seu exemplo, nossa, gerou um XML bem mais limpo e identado, ficou muito melhor.

Mas ele perde zera o XML toda vez q eu rodo o programa.

Quando eu fecho o programa eu tenho o XML 1.

Quando eu abro denovo, ele apaga tudo e eu tenho o XML 2.

Se tem ideia do que se passa?

VELO

velo

Tentei usar o SnapshotManager que faz a serialização default e tbm não tá dando certo.
Pelo menos com o SnapshotManager ele grava todas alterações que eu faço e de tempos em tempos tira o snapshot.

Mas mesmo assim, se eu fechar e abrir denovo, perco tudo.

Alguém sabe q q eu toh fazendo de errado?

VELO

Criado 9 de julho de 2005
Ultima resposta 11 de jul. de 2005
Respostas 3
Participantes 2