Erro ao fazer persistência+Floggy

22 respostas
brenoeaf

Pessoal, estou desenvolvendo uma aplicação em JME e utilizando o framework floggy para fazer a persistência dos dados,porém estão aparecendo 2 linhas de erro quando peço para salvar os dados:
-Está aparecendo que a classe de persistencia não é valida
net.sourceforge.floggy.FloggyException: midlet.Table" is not a valid persistable class.

E logo apos os dois erros:

at net.sourceforge.floggy.PersistableManager.save(PersistableManager.java:134)
    at midlet.Table.save(Table.java:60)

Os erros estão na classe gerada pelo floggy,e quando peço para salvar através do metodo save();
nas seguintes linhas:

public void save(){ try{ // aqui está onde esta dando um dos erros,na linha abaixo PersistableManager.getInstance().save(this); } catch (FloggyException ex) { ex.printStackTrace(); } }

Table table = new Table(); table.setMatricula(usuario); table.setAno(ano); table.setNome(nome); table.setCurso(curso); table.setMateria(materia); //aqui esta dando o outro erro,quando peço para salvar table.save();

O build.xml esta configurado assim:

<taskdef name="floggy-compiler" classname="net.sourceforge.floggy.CompilerTask" classpath="c:/floggy-compiler-j2me-midp2-1.0.zip"/> <target name="post_compile"> <floggy-compiler classpath="c:/floggy-compiler-j2me-midp2-1.0.zip${path.separator}c:/floggy-framework-SNAPSHOT.jar" inputfile="${ basedir}/build/compiled" outputfile="${basedir}/build/compiled"/> </target>

Alguem tem alguma dica de onde pode estar o meu erro?

22 Respostas

fabianofrizzo

vc colocou na sua classe que ela implementa Persistable

public class Table implements Persistable{

}

Veja ai e qual quer coisa posta ai de novo

brenoeaf

Coloquei sim, quer dizer na verdade essa classe foi gerada pelo floggy,após eu ter feito os diagramas e esta linha está lá sim, seguindo logo abaixo com os metodos set e get.

public class Table implements Persistable{

	private String Matricula;

	private String Ano;

	private String Nome;

	private String Curso;

	private String Materia;
fabianofrizzo

Vc usou o Plugin para desenhar as Classes no Netbeans

Ele é bem antigo e não foi mais atualizado

Vc chegou a dar uma olhada no Site do Floggy…

Tem algumas coisas diferentes

Bom vou passar com que esta o declaração do Floggy no meu build.xml

<property name="floggy.path" value="C:\Floggy"/> <path id="floggy.classpath"> <fileset dir="${floggy.path}\lib" includes="*.jar"/> </path> <target name="post-compile"> <taskdef name="floggy-persistence-weaver" classname="net.sourceforge.floggy.persistence.WeaverTask" classpathref="floggy.classpath"/> <floggy-persistence-weaver bootclasspath="${platform.bootclasspath}" classpath="${libs.classpath}" input="${build.classes.dir}" output="${build.classes.dir}"/> </target>

Lembrando que o floggy esta no C: da minha maquina ai vc muda de acordo com a sua mas procura baixar a versão mais atual do Floggy…

Qualquer coisa posta ai de novo

brenoeaf
Ja atualizei aqui mais agora esta pedindo para implementar Persistable e os erros continuam.
Floggy Persistence Weaver - 1.1.0
CLDC version: 1.1
Look up for classes that implements Persistable!
Bytecode NOT modified.
Bytecode NOT modified.
Bytecode NOT modified.
Bytecode NOT modified.
Bytecode NOT modified.
No build os erros:
<antcall target="post-compile" inheritall="true" inheritrefs="true"/>
  output="${build.classes.dir}"/>
Na classe:
package midlet;

import net.sourceforge.floggy.persistence.FloggyException;
import net.sourceforge.floggy.persistence.Persistable;
import net.sourceforge.floggy.persistence.PersistableManager;

public class Table implements Persistable {

	private String Matricula;

	private String Nome;

	private String Ano;

	private String Materia;
        
       private String Curso;

// metodos set e get
public void save(){
		try{
			PersistableManager.getInstance().save(this);
		} catch (FloggyException ex) {
			ex.printStackTrace();
		}
	}
Na aplicação:
import net.sourceforge.floggy.persistence.ObjectSet;
import net.sourceforge.floggy.persistence.PersistableManager;
import net.sourceforge.floggy.persistence.Persistable;

// parte q peço para salvar
 Table table = new Table();
                        table.setMatricula(tfmatricula.getString());
                        table.setAno(tfAno.getString());
                        table.setNome(tfnome.getString());
                        table.setCurso(tfcurso.getString());
                          table.save();

Porque será q esta dando esse erro? Se alguem poder me ajudar,desde já agradeço.

brenoeaf

Pessoal,não consegui resolver então devido ao pouco tempo que tenho para entregar a monografia implementei os codigos para persistência sem o auxilio do framework,porém vou deixar o tópico aberto ,caso alguém tenha um problema parecido poste aqui.

P

brenoeaf:
Pessoal,não consegui resolver não,então devido ao pouco tempo que tenho para entregar a monografia implementei os codigos para persistência sem o auxilio do framework,porém vou deixar o tópico em aberto para que se alguém tiver um problema parecido postar aqui.

Sua atitude tem coerência. Eu faria o mesmo se o prazo tivesse apertado.
Aliás o que te levou a usar o framework ? Este pode até ter seus méritos mas sinceramente não conheço ninguém usando, quase nada falam sobre ele, e quem toca no assunto, esbarra em problemas que não vejo solução, pelo menos não aqui no GUJ.

Foi por modismo, indicação de alguém,achou que ia ser mais fácil usando ele ou o que ?

brenoeaf

Pensei em utilizar o Flogg,para agilizar no desenvolvimento,a princípio quando vi os codigos de implementação do rms achei que seria muito complicado e demorado para implementar, e quando vi os códigos do floggy achei que seria mais fácil e rápido,e como o tempo para terminar de desenvolver o projeto,está curto escolhi uttilizar o Flogg,mais foi so estudar um pouco os códigos do rms e vi que não é tão complicado assim o quanto eu estava pensando que fosse.

fabianofrizzo
brenoeaf:
Ja atualizei aqui mais agora esta pedindo para implementar Persistable e os erros continuam.
Floggy Persistence Weaver - 1.1.0
CLDC version: 1.1
Look up for classes that implements Persistable!
Bytecode NOT modified.
Bytecode NOT modified.
Bytecode NOT modified.
Bytecode NOT modified.
Bytecode NOT modified.
No build os erros:
<antcall target="post-compile" inheritall="true" inheritrefs="true"/>
  output="${build.classes.dir}"/>
Na classe:
package midlet;

import net.sourceforge.floggy.persistence.FloggyException;
import net.sourceforge.floggy.persistence.Persistable;
import net.sourceforge.floggy.persistence.PersistableManager;

public class Table implements Persistable {

	private String Matricula;

	private String Nome;

	private String Ano;

	private String Materia;
        
       private String Curso;

// metodos set e get
public void save(){
		try{
			PersistableManager.getInstance().save(this);
		} catch (FloggyException ex) {
			ex.printStackTrace();
		}
	}
Na aplicação:
import net.sourceforge.floggy.persistence.ObjectSet;
import net.sourceforge.floggy.persistence.PersistableManager;
import net.sourceforge.floggy.persistence.Persistable;

// parte q peço para salvar
 Table table = new Table();
                        table.setMatricula(tfmatricula.getString());
                        table.setAno(tfAno.getString());
                        table.setNome(tfnome.getString());
                        table.setCurso(tfcurso.getString());
                          table.save();

Porque será q esta dando esse erro? Se alguem poder me ajudar,desde já agradeço.

Amigo vc usa o Eclipse ou o NetBeans para desenvolver???

Eu uso o floggy e tenho tido muita produtividade com ele...

Qualquer coisa manda o seu projeto ai que dou uma olhada para te ajudar

fabianofrizzo

boone:
brenoeaf:
Pessoal,não consegui resolver não,então devido ao pouco tempo que tenho para entregar a monografia implementei os codigos para persistência sem o auxilio do framework,porém vou deixar o tópico em aberto para que se alguém tiver um problema parecido postar aqui.

Sua atitude tem coerência. Eu faria o mesmo se o prazo tivesse apertado.
Aliás o que te levou a usar o framework ? Este pode até ter seus méritos mas sinceramente não conheço ninguém usando, quase nada falam sobre ele, e quem toca no assunto, esbarra em problemas que não vejo solução, pelo menos não aqui no GUJ.

Foi por modismo, indicação de alguém,achou que ia ser mais fácil usando ele ou o que ?

Eu uso o Floggy desde as primeiras versões e funciona muito bem…
No começo foi um pouco complicado sim mas depois e moleza…

brenoeaf

ta beleza fabianofrizzo,estou utilizando o netbeans,tenho o backup do projeto que estava implementando utilizando o Floggy,porém estou sem tempo essa semanana,assim que apresentar a minha monografia,te envio os codigos para você dar uma olhada,pois como você tem mais experiência em utiliza-lo,deve descobrir o erro com facilidade,ai você posta aqui o porque deste erro.Agora estou com outra dúvida,esse é o primeiro projeto que faço em JMe utilizando persistência,é comum os dados persistirem somente enquanto o emulador esta aberto?Pq no arquivo jad está persistindo normalmente,posso abri-lo e fecha-lo,que os dados persistem,no emulador os dados so persistem enquanto ele esta aberto,funciona assim mesmo?

fabianofrizzo

Intão isso eu acho que é algum bug do Emulador de vez em quando também acontece isso aqui…

E ja vi relatos de mais pessoas que acontece o mesmo…

H

Por favor me ajudem!
To precisando urgentemente do floggy,o site está em manutenção já a uma semana, estou fazendo uma aplicação para meu projeto final baseado nele e tenho que estar apresentando parcialmente
o projeto na sexta-feira tem como alquém que já possua o floggy me enviar ele por email !

Muito Obrigado, mas muito obrigado mesmo !!

[email removido]

P

hiky:
Por favor me ajudem!
To precisando urgentemente do floggy,o site está em manutenção já a uma semana, estou fazendo uma aplicação para meu projeto final baseado nele e tenho que estar apresentando parcialmente
o projeto na sexta-feira tem como alquém que já possua o floggy me enviar ele por email !

Muito Obrigado, mas muito obrigado mesmo !!

[email removido]

São 22:05 do dia 21/07 e o site SourceForge.net continua no ar como sempre. Foi possível fazer o download sem problemas.
Quando vc escrevei “em manutenção” eu até estranhei, pois nestes anos todos em que eu usei eu nunca tive a infeliz coincidência de pegar ele neste estado…

H

Bom então irei fazer uma pergunta diferente, aonde eu consigo os arquivos floggy-framework-SNAPSHOT.jar, floggy-compiler-j2me-midp2-1.0.zip e FloggyUML e os outros relacionados a ele. pq no site o unico lugar aonde eu pensei que estava diz exatamente “Sorry! This page will be available soon.” quando clico no link !

Será que alquem poderia me mandar por email !

Obrigado.

[email removido]

fabianofrizzo

hiky:
Bom então irei fazer uma pergunta diferente, aonde eu consigo os arquivos floggy-framework-SNAPSHOT.jar, floggy-compiler-j2me-midp2-1.0.zip e FloggyUML e os outros relacionados a ele. pq no site o unico lugar aonde eu pensei que estava diz exatamente “Sorry! This page will be available soon.” quando clico no link !

Será que alquem poderia me mandar por email !

Obrigado.

[email removido]

http://www.floggy.org

H

Teria como especificar exatamente o local aonde eu consigo o arquivo floggy-framework-SNAPSHOT.jar por exemplo no site !

Porque eu já procurrei por todo site e a unica coisa que eu consigo achar é o floggy-persistence 1.1.1, e dentro dele eu pelo menos não acho esses arquivos.

Se puderem me especificar exatamente o lugar onde eu encontro ele no site agradeço, pq estou precisando muito e não encontro.

Obrigado.

fabianofrizzo

Bom o atual é esse mesmo floggy-persistence 1.1.1

Vc tem que baixar ele e seguir as instruções conforme estão no site… Veja qual a IDE que vc ta usando e faça as configurações de acordo com a mesma la tem tudo bem detalhado…

Fernando_Generoso_da

Leandro,

Os três arquivos são da versão antiga do Floggy, junto com o FloggyUML plugin. A versão atual não têm um plugin visual. O FloggyUML foi desenvolvido para participar de um concurso que a SUN promoveu o ano passado, por mim e por um colega. Mas por falta de tempo não refiz o plugin para funcionar com a nova versão do Floggy. Como estou vendo que algumas pessoas utilizam ele, vou reservar um tempo para retomar o projeto e desenvolver uma nova versão do plugin.

att

Fernando Rosa

H

Alquem tem o floggy da versão anterior que poderia me estar enviando por email, o floggy que contia o floggy-framework-SNAPSHOT.jar, floggy-compiler-j2me-midp2-1.0.zip e FloggyUML e os outros relacionados a ele.

To precisando muito desses arquivos !!!

Valeu mas valeu muito mxm !!!

H

Alguem sabe como fica esse codigo na nova versão do floggy ?

if( os.hasNext() ){
os.last();

while ( os.hasPrevious() ) {
                Teacher teacher = (Teacher) os.previous();
                
                cgTeache.append( teacher.getTeacherName(), null )
            }
            
            cgTeacher.setSelectedIndex(0, true);
            
        }

eh um exemplo de uma video aula da devmedia !

tmoreira2020

Caro hiky,

O código que você está utilizando é meramente uma iteração de ordem inversa num ObjectSet.

Tente o seguinte para obter o mesmo resultado com as versões do Floggy mais recentes que 1.0.1.

int size= os.size();
  for (int i= size-1; i >= 0; i--) {
    Teacher teacher= (Teacher)os.get(i);
    cgTeache.append( teacher.getTeacherName(), null ) 
  }

Um abraço!

renatocustodio

Sobre o problema original, no faq encontra se a seguinte solução:

I'm getting a "cannot access java.lang.NoClassDefFoundError class file for java.lang.NoClassDefFoundError not foundjava.lang.NoClassDefFoundError" error when executing Floggy. What is happening?

    This is not a Floggy problem! This problem is correlated to a transformation that compilers do when reach a Java's language construction like this Class personClass= Person.class. What happens is that the compiler transform this construction into a try/catch block which catches a java.lang.NoClassDefFoundError so when the compiler tries to check the class java.lang.NoClassDefFoundError against the CLDC-1.0 classpath it detects that this class doesn't exist, throwing the error that you are getting. There are two ways to avoid this. The first one is instead of using the construction Class personClass= Person.class you must use Class personClass= Class.forName("Person");. The other one is switch to the CLDC-1.1 configuration.
Criado 12 de junho de 2008
Ultima resposta 23 de set. de 2008
Respostas 22
Participantes 7