Olá a todos,
galera, estou tentando estudar JSF nas minhas férias em cima da apostila K-19, no capitulo 2, eles ensinam a criar as tabelas através da seguinte classe:
public class GeraTabelas {
public static void main(String[] args) {
EntityManagerFactory factory =
Persistence.createEntityManagerFactory("livraria");
factory.close();
}
}
Mas estou recebendo a seguinte exception:
0 [main] INFO org.hibernate.cfg.annotations.Version - Hibernate Annotations 3.5.1-Final
16 [main] INFO org.hibernate.cfg.Environment - Hibernate 3.5.1-Final
16 [main] INFO org.hibernate.cfg.Environment - hibernate.properties not found
31 [main] INFO org.hibernate.cfg.Environment - Bytecode provider name : javassist
31 [main] INFO org.hibernate.cfg.Environment - using JDK 1.4 java.sql.Timestamp handling
187 [main] INFO org.hibernate.annotations.common.Version - Hibernate Commons Annotations 3.2.0.Final
203 [main] INFO org.hibernate.ejb.Version - Hibernate EntityManager 3.5.1-Final
[Fatal Error] :1:7: The processing instruction target matching "[xX][mM][lL]" is not allowed.
Exception in thread "main" javax.persistence.PersistenceException: Invalid persistence.xml.
Error parsing XML (line1 : column 7): The processing instruction target matching "[xX][mM][lL]" is not allowed.
at org.hibernate.ejb.packaging.PersistenceXmlLoader.loadURL(PersistenceXmlLoader.java:145)
at org.hibernate.ejb.packaging.PersistenceXmlLoader.deploy(PersistenceXmlLoader.java:168)
at org.hibernate.ejb.Ejb3Configuration.configure(Ejb3Configuration.java:310)
at org.hibernate.ejb.HibernatePersistence.createEntityManagerFactory(HibernatePersistence.java:55)
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:48)
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:32)
at modelo.GeraTabelas.main(GeraTabelas.java:17)
log4j.properties:
log4j.rootCategory=INFO, CONSOLE
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=%r [%t] %-5p %c - %m%n
persistence.xml:
<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd" version="1.0">
<persistence-unit name="livraria" transaction-type="RESOURCE_LOCAL">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<properties>
<property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5InnoDBDialect"/>
<property name="hibernate.hbm2ddl.auto" value="create"/>
<property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver"/>
<property name="javax.persistence.jdbc.user" value="root"/>
<property name="javax.persistence.jdbc.password" value=""/>
<property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/livraria"/>
</properties>
</persistence-unit>
</persistence>
Editora.java:
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
/**
*
* @author HOUSE
*/
@Entity
public class Editora {
@Id
@GeneratedValue
private Long id;
private String nome;
private String email;
public void setEmail(String email) {
this.email = email;
}
public void setId(Long id) {
this.id = id;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getEmail() {
return email;
}
public Long getId() {
return id;
}
public String getNome() {
return nome;
}
}
Eu poderia muito bem criar as tabelas na unha, mas estou querendo seguir a apostila ao pé da letra :).
Em anexo os jars que estou utilizando.
Nem debugar eu consígo, esse arquivo properties é novo para mim. Alguém já passou por isso, poderia dar uma força?
VALEU!!!

