Senhores,
Estou com problema na hora de criar um simples acesso ao banco via JPA.
Estou tetando acessar uma tabela simples,
create table cliente (id int primary key, nome varchar(50), cidade varchar(50), sobrenome varchar(50))
Ele apresenta o seguinte erro:
Exception in thread "main" Local Exception Stack: Exception [TOPLINK-30004] (Oracle TopLink Essentials - 2.0 (Build b41-beta2 (03/30/2007))): oracle.toplink.essentials.exceptions.PersistenceUnitLoadingException Exception Description: An exception was thrown while processing persistence.xml from URL: file:/C:/Users/rcoelho/Documents/NetBeansProjects/JPAteste/src/ Internal Exception: (1. Content is not allowed in prolog.) at oracle.toplink.essentials.exceptions.PersistenceUnitLoadingException.exceptionProcessingPersistenceXML(PersistenceUnitLoadingException.java:119) at oracle.toplink.essentials.ejb.cmp3.persistence.PersistenceUnitProcessor.processPersistenceXML(PersistenceUnitProcessor.java:146) at oracle.toplink.essentials.ejb.cmp3.persistence.PersistenceUnitProcessor.processPersistenceArchive(PersistenceUnitProcessor.java:84) at oracle.toplink.essentials.ejb.cmp3.persistence.PersistenceUnitProcessor.getPersistenceUnits(PersistenceUnitProcessor.java:74) at oracle.toplink.essentials.internal.ejb.cmp3.JavaSECMPInitializer.initPersistenceUnits(JavaSECMPInitializer.java:223) at oracle.toplink.essentials.internal.ejb.cmp3.JavaSECMPInitializer.initialize(JavaSECMPInitializer.java:242) at oracle.toplink.essentials.internal.ejb.cmp3.JavaSECMPInitializer.initializeFromMain(JavaSECMPInitializer.java:278) at oracle.toplink.essentials.internal.ejb.cmp3.JavaSECMPInitializer.getJavaSECMPInitializer(JavaSECMPInitializer.java:81) at oracle.toplink.essentials.ejb.cmp3.EntityManagerFactoryProvider.createEntityManagerFactory(EntityManagerFactoryProvider.java:119) at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:83) at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:60) at JPA.DAO.ClienteDAO.(ClienteDAO.java:16) at JPA.TESTE.TesteCliente.main(TesteCliente.java:12) Caused by: (1. Content is not allowed in prolog.) at oracle.toplink.essentials.internal.ejb.cmp3.xml.parser.XMLExceptionHandler.error(XMLExceptionHandler.java:37) at oracle.toplink.essentials.internal.ejb.cmp3.xml.parser.XMLExceptionHandler.fatalError(XMLExceptionHandler.java:43) at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.fatalError(ErrorHandlerWrapper.java:218) at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:386) at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:316) at com.sun.org.apache.xerces.internal.impl.XMLScanner.reportFatalError(XMLScanner.java:1438) at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$PrologDispatcher.dispatch(XMLDocumentScannerImpl.java:899) at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:368) at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:834) at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:764) at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:148) at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1242) at oracle.toplink.essentials.ejb.cmp3.persistence.PersistenceUnitProcessor.processPersistenceXML(PersistenceUnitProcessor.java:136) ... 11 more Java Result: 1
Meu codigo eh o seguinte
JPA.BEANpackage JPA.BEAN;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
@Entity
@Table(name="cliente")
public class Cliente {
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
private int id;
private String nome;
private String cidade;
private String sobrenome;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getCidade() {
return cidade;
}
public void setCidade(String cidade) {
this.cidade = cidade;
}
public String getSobrenome() {
return sobrenome;
}
public void setSobrenome(String sobrenome) {
this.sobrenome = sobrenome;
}
}
package JPA.DAO;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
import JPA.BEAN.Cliente;
public class ClienteDAO {
EntityManagerFactory emf;
private EntityManager getEntityManager(){
return emf.createEntityManager();
}
public ClienteDAO() {
emf = Persistence.createEntityManagerFactory("sistemas");
}
public void salvar(Cliente cliente){
EntityManager em = getEntityManager();
try{
em.getTransaction().begin(); //inicia o processo de transacao
em.persist(cliente);//permite fazer insercoes e atualizacoes no bd
em.getTransaction().commit();//realizo as alteracoes no banco
}catch (Exception e) {
em.getTransaction().rollback();// se rolar uma excecao cancelo acao
e.printStackTrace();//mostro o percurso de onde veio as excecoes
}finally{
em.close();
}
}
public void excluir(Cliente cliente){
EntityManager em = getEntityManager();
try{
em.getTransaction().begin();
cliente = em.merge(cliente);
em.remove(cliente);
em.getTransaction().commit();
}catch (Exception e) {
em.getTransaction().rollback();
}
}
public void atualizar(Cliente cliente){
EntityManager em = getEntityManager();
try{
em.getTransaction().begin();
em.merge(cliente);
em.getTransaction().commit();
}catch (Exception e) {
em.getTransaction().rollback();
}}
}
package JPA.TESTE;
import JPA.BEAN.Cliente;
import JPA.DAO.ClienteDAO;
public class TesteCliente {
/**
* @param args
*/
public static void main(String[] args) {
ClienteDAO clidao = new ClienteDAO();
Cliente cliente = new Cliente();
// cliente.setCidade("salvador");
cliente.setNome("recife");
cliente.setSobrenome("neto");
//cliente.setId(12);
clidao.salvar(cliente);
//clidao.excluir(cliente);
//cliente.setCidade("Sao Paulo");
//cliente.setId(15);
//clidao.atualizar(cliente);
}
}
<?xml version="1.0" encoding="UTF-8"?>
org.hibernate.ejb.HibernatePersistence
< persistence-unit name="sistemas" transaction-type="RESOURCE_LOCAL">
<!-- Voce tem que dizer ao persistence.xml onde esta a sua entidade -->
JPA.BEAN.Cliente
<!--Configuracoes de dialeto e conexao-->
< property name="hibernate.dialect" value="org.hibernate.dialect.MySQLInnoDBDialect" />
< property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver" />
< property name="hibernate.connection.url" value="jdbc:mysql://localhost/test" />
< property name="hibernate.connection.username" value="root" />
< property name="hibernate.connection.password" value="rafa10" />
<!--Configuracoes de Debug-->
< property name="hibernate.show_sql" value="true" />
< property name="hibernate.format_sql" value="true" />
< property name="use_sql_comments" value="true" />
< /persistence-unit>
PS: Estou usando o NetBeans e as APIs que instalei sao toplink-essentials-agent.jar e toplink-essentials.jar
Poderiam me ajudar ?