Boa tarde sou iniciante em java para web e estou tentando fazer uma tela de login usando o glassfish com mysql e hibernate, fiz alguns testes com a aplicação fazendo login de dentro de uma main e não deu erro algum, mas quando eu uso a tela de login da aplicação que é em um arquivo xhtml ela apresenta o seguinte erro:
type Exception report
message
descriptionThe server encountered an internal error () that prevented it from fulfilling this request.
exception
javax.servlet.ServletException: javax.persistence.PersistenceException: No Persistence provider for EntityManager named sistema
root cause
javax.faces.el.EvaluationException: javax.persistence.PersistenceException: No Persistence provider for EntityManager named sistema
root cause
javax.persistence.PersistenceException: No Persistence provider for EntityManager named sistema
Já andei olhando em alguns lugares e em sua maioria pedem para verificar se o persistence.xml está na pasta src/META-INF mas meu persistence já está nessa pasta.
Segue meu arquivo persistence.xml:
<?xml version="1.0" encoding="UTF-8"?>
<persistence-unit name="sistema" 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 = "update"/>
<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 = "root"/>
<property name = "javax.persistence.jdbc.url" value = "jdbc:mysql://localhost:3306/sistema"/>
</properties>
</persistence-unit>
O erro continua mesmo alterando 'RESOURCE_LOCAL" para “JTA”.
Ao iniciar a aplicação não é mostrado nenhum erro nem no console nem no browser, apenas quando eu aperto o botão que aciona o ManagedBean aparece o erro que mencionei.
A ta, você ta criando na unha a conexão. Então deixa como RESOURCE_LOCAL mesmo.
Veja se no arquivo que vai para dentro do seu servidor, se o persistence.xml está indo dentro da pasta META-INF certinho.
OBS. Não esse arquivo tem que estar na pasta src/META-INF e não dentro de WEB-INF. Ele tem que ficar na raiz em que se encontram os pacotes da sua classe.
Sim importei os jars do JPA, antes de fazer testes com a tela da aplicação eu fiz uma main para testar se o hibernate estava funcionando, usando a main funcionou, mas quando uso a tela aparece esse erro.
Fuçando por aqui nos diretórios do glassfish encontrei a pasta eclipseApps\Login (esse é o meu projeto) o arquivo persistence.xml está apenas nesse local eclipseApps\Login\WEB-INF\classes\META-INF ele deveria estar em outro lugar?
O persistence já está na pasta src/META-INF o caminho que citei acima foi navegando pelas pastas onde o servidor foi instalado pois achei que podia ter algo relacionado com o que o jakefrog estava falando.