[Resolvido] Configuracao persistence.xml

15 respostas
I

Duvida noob, pessoal, ja procurei no forum e testei de varias formas que encontrei, mas ainda nao estou conseguindo…

Está dando o clássico erro de:

meu persistence.xml está assim:

<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_2_0.xsd"
             version="2.0">
   <persistence-unit name="treinamentoPU" transaction-type="RESOURCE_LOCAL">
      <provider>org.hibernate.ejb.HibernatePersistence</provider>
      <properties>
         <property name="hibernate.hbm2ddl.auto" value="update"/>
         <property name="connection.username" value="treinamento"/>
         <property name="connection.password" value="treinamento"/>
         <property name="connection.driver_class" value="oracle.jdbc.driver.OracleDriver"/>
         <property name="dialect" value="org.hibernate.dialect.OracleDialect"/>
         <property name="current_session_context_class" value="thread"/>
         <property name="hibernate.connection.url" value="jdbc:oracle:thin:@192.168.56.101:1521:bcoimp"/>
         <property name="hibernate.show_sql" value="true"/>
      </properties>
   </persistence-unit>
</persistence>

Nessa estrutura de diretorio:

pra fazer o teste criei uma class main simples assim:

public static void main(String[] args) {
		EntityManagerFactory factory = Persistence  
                .createEntityManagerFactory("treinamentoPU");  
        factory.close();
	}

Alguem sabe dizer pq nao acha o persistence.xml?

15 Respostas

H

Mova a pasta META-INF para dentro do diretório JavaResources.

I

Tb nao deu assim =(, mesmo erro

H

igor_ks:
Tb nao deu assim =(, mesmo erro
Coloca um print aí.

H

Hebert Coelho:
igor_ks:
Tb nao deu assim =(, mesmo erro
Coloca um print aí.
Coloca um print aí de como ficou depois que você moveu o arquivo.

I

H

Coloque no mesmo pacote das classes java.

H

Tem que ficar quase assim:
Note que a pasta META-INF está na raiz dos pacotes das classes.

L

Da forma que ele fez tá certo, não precisa tá junto das classes, depois de compilado vai parar junto mesmo, está separada apenas para não misturar classes Java e arquivos ‘comuns’.

Segue a estrutura de um projeto Maven que roda em JBoss 7, porém esse projeto resulta em um jar e não war.
.
├── pom.xml
└── src
├── main
│ ├── java
│ │ └── br
│ │ └── com
│ └── resources
│ ├── ehcache.xml
│ └── META-INF
│ ├── beans.xml
│ ├── ejb-jar.xml
│ ├── orm.xml
│ └── persistence.xml
└── test
└── java
└── br
└── com

Tem esse link que explica um pouco onde por o persistence.xml em um WAR.

http://javahowto.blogspot.com.br/2007/06/where-to-put-persistencexml-in-web-app.html

H

lsjunior:
Da forma que ele fez tá certo, não precisa tá junto das classes, depois de compilado vai parar junto mesmo, está separada apenas para não misturar classes Java e arquivos ‘comuns’.

Segue a estrutura de um projeto Maven que roda em JBoss 7, porém esse projeto resulta em um jar e não war.
.
├── pom.xml
└── src
├── main
│ ├── java
│ │ └── br
│ │ └── com
│ └── resources
│ ├── ehcache.xml
│ └── META-INF
│ ├── beans.xml
│ ├── ejb-jar.xml
│ ├── orm.xml
│ └── persistence.xml
└── test
└── java
└── br
└── com

Tem esse link que explica um pouco onde por o persistence.xml em um WAR.

http://javahowto.blogspot.com.br/2007/06/where-to-put-persistencexml-in-web-app.html

Como não sei se a aplicação dele está configurada corretamente com o maven, preferi não arriscar. Pois se igual acima não funcionou, não sei c é algo errado no script.

Para JEE 6 não é necessário mais um JAR separado. Você pode rodar até EJB de dentro de um WAR.

L

É mais por organização mesmo. Deixo cada módulo da aplicação separado, fica mais organizado e fácil de achar as coisas.

H

lsjunior:
É mais por organização mesmo. Deixo cada módulo da aplicação separado, fica mais organizado e fácil de achar as coisas.
Entenda que eu não estou falando que está errado ou é má prática. Estou alertando para o fato de que é necessário conhecer o Maven também. Não adianta colocar o arquivo no lugar certo de o pom estiver errado. ^^

I

caramba, ta complicado, rs…
ja criei varios projetos, workspace uma zona
horas ja pra fazer isso =((

H

igor_ks:
caramba, ta complicado, rs…
ja criei varios projetos, workspace uma zona
horas ja pra fazer isso =((
Segue esse tutorial que funciona: Hibernate 3 com JPA 2.

I

Criando assim igual seu tutorial Hebert, com Java Project, da certo…

Agora qdo crio um Maven Project ele ja nao acha, com a mesma estrutura de pastas

I

Resolvido!

adicionei essa dependencia no pom.xml ai foi

<dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-entitymanager</artifactId> <version>4.1.7.Final</version> </dependency>

Criado 23 de outubro de 2012
Ultima resposta 23 de out. de 2012
Respostas 15
Participantes 3