EJB / JSF / JPA / Glassfish - ERRO!

Estou tentando iniciar uma aplicação utilizando EJB + Glassfish + JSF + JPA.

Instalei o Glasshfish. Configurei o Pool Connection e o Data Source.

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="L19" transaction-type="JTA">
		<provider>org.hibernate.ejb.HibernatePersistence</provider>
		<jta-data-source>jdbc/L19</jta-data-source>

		<properties>
			<property name="hibernate.show_sql" value="true" />
			<property name="hibernate.format_sql" value="true" />
			<property name="hibernate.hbm2ddl.auto" value="create" />
			<property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5InnoDBDialect" />
		</properties>
		
	</persistence-unit>
</persistence>

Na minha aplicação estou tentando utilizar

    @PersistenceContext
    private EntityManager manager;

No final das contas, retorna o erro

java.lang.IllegalStateException: Unable to retrieve EntityManagerFactory for unitName null

quando eu utilizo

@PersistenceContext(unitName="L19")
private EntityManager manager;

retorna o erro

java.lang.IllegalStateException: Unable to retrieve EntityManagerFactory for unitName L19

Alguém tem alguma ideia do que pode ser?

De dentro da administração do Glassfish, consigo dar PING no Pool de conexão. Tem que configurar algo a mais na aplicação?

Obrigado

Onde você declarou o L19?

jakefrog,

obrigado pela resposta!

Configurei um JDBC Connection Pool de dentro do Glassfish:
Pool Name: L19
Resource Type: javax.sql.ConnectionPoolDataSource
url: jdbc:mysql://localhost:3306/k22
----- k22 é o nome da base de dados do mysql e está ok -----

Depois configurei um JDBC Resource
JNDI name: jdbc/L19
Pool name: L19 (é um select que tem como opção os pools configurados)

Você precisa estudar um pouco o que é JPA e quais seus conceitos.

O L19 ñ tem que ser um datasource, mas um PersistenceUnit. Esse arquivo que contem essa informação tem que estar dentro da pasta META-INF.

[quote=jakefrog]Você precisa estudar um pouco o que é JPA e quais seus conceitos.

O L19 ñ tem que ser um datasource, mas um PersistenceUnit. Esse arquivo que contem essa informação tem que estar dentro da pasta META-INF.[/quote]

Obrigado pela atenção.

Sobre ele ser um datasource, o datasource não é o jdbc/L19?

E como eu configurei um Pool Connection como L19, ele não é um PersistenceUnit?

Realmente preciso estudar esses conceitos.

1 erro já encontrei.

Meu persistence.xml precisa estar no src/META-INF/

Antes estava no WebContent/META-INF

Deu outro erro. Vou continuar tentando aqui!

Resolvido.

O principal era que eu tinha colocado o persistence.xml no local errado, conforme relatei acima.

Depois, havia os jar do hibernate no glassfish/lib, PORÉM eu havia colocado os jar “required” do hibernate e não tinha colocado o hibernate-entitymanager-X.X.X.Final nesta pasta.

Obrigado!