Eu utilizo o JPOX, mas ja tentei o TJDO tambem e esta dando o erro abaixo, que segundo as informacoes da documentacao e por falta de colocar o package.jdo no classpath, mas eu estou colocando o arquivo no classpath e continua dando erro, eu utilizo o eclipse, mas ja tentei rodar tudo manualmente mas da este erro, eu nao sei mais o que fazer, alguem poderia me ajudar a encontrar onde estou errando, pois eu nao estou conseguindo achar o erro.
org.jpox.exceptions.ClassNotPersistenceCapableException: The class “estoque.Marca” is not Persistence-Capable. This means
that it either hasnt been enhanced, or that the enhanced version of the file is
not in the CLASSPATH (or is hidden by an unenhanced version), or the Meta-Data
for the class is not found.
at org.jpox.AbstractPersistenceManager.assertPersistenceCapable(AbstractPersist
enceManager.java:636)
Fontes:
Marca.java
package estoque;
public class Marca
{
public int MAR_COD;
public String MAR_DESCRICAO;
public Marca(int Codigo, String Descricao)
{
MAR_COD = Codigo;
MAR_DESCRICAO = Descricao;
}
}
package.jdo
<?xml version=“1.0” encoding=“UTF-8”?>
<!DOCTYPE jdo SYSTEM “file:/jdo_2_0.dtd”>
<jdo>
<package name=“estoque”>
<class name=“Marca” identity-type=“datastore”>
<field name=“MAR_COD” persistence-modifier=“persistent”/>
<field name=“MAR_DESCRICAO” persistence-modifier=“persistent”>
<column length=“50” jdbc-type=“VARCHAR”/>
</field>
</class>
</package>
</jdo>
Codigo utilizado para persistencia
java.util.Properties props = new java.util.Properties();
props.setProperty("javax.jdo.PersistenceManagerFactoryClass",
"org.jpox.PersistenceManagerFactoryImpl");
props.setProperty("javax.jdo.option.ConnectionDriverName",
"org.firebirdsql.jdbc.FBDriver");
props.setProperty("javax.jdo.option.ConnectionURL",
"jdbc:firebirdsql:127.0.0.1/3050:/armazem/work/bases/siagem.fdb");
props.setProperty("javax.jdo.option.ConnectionUserName", "SYSDBA");
props.setProperty("javax.jdo.option.ConnectionPassword", "masterkey");
props.setProperty("org.jpox.autoCreateSchema","false");
props.setProperty("org.jpox.validateTables","false");
props.setProperty("org.jpox.validateConstraints","false");
//props.setProperty("org.jpox.enhancer.JPOXEnhancer", "package.jdo");
/* Properties properties = new Properties();
properties.setProperty("javax.jdo.PersistenceManagerFactoryClass",
"org.jpox.PersistenceManagerFactoryImpl");
properties.setProperty("javax.jdo.option.ConnectionDriverName",
"com.mysql.jdbc.Driver");
properties.setProperty("javax.jdo.option.ConnectionURL","jdbc:mysql://localhost/myDB");
properties.setProperty("javax.jdo.option.ConnectionUserName","login");
properties.setProperty("javax.jdo.option.ConnectionPassword","password");
properties.setProperty("org.jpox.autoCreateSchema","true");
properties.setProperty("org.jpox.validateTables","false");
properties.setProperty("org.jpox.validateConstraints","false");
PersistenceManagerFactory pmf = JDOHelper.getPersistenceManagerFactory(properties);
PersistenceManager pm = pmf.getPersistenceManager(); */
PersistenceManagerFactory pmf = JDOHelper.getPersistenceManagerFactory (props);
PersistenceManager pm = pmf.getPersistenceManager();
Transaction t1 = pm.currentTransaction();
try
{
t1.begin();
Marca m = new Marca(1, "Teste");
pm.makePersistent(m);
t1.commit();
}
finally
{
if (t1.isActive())
t1.rollback();
pm.close();
}
}
Wesller da Silva Franca
[email removido]