Olá amigos.
E a sucessão de erros continua… Parece que estou amaldiçoado… kkk… Bem, o que está aparecendo agora após a compilação do projeto é o famoso java.lang.NullPointerException. O assunto é abordado na página 53 do livro, e sei que é causado por uma referência a um atributo ou objeto que não existe. Segui as recomendações do livro, e nada. Ao verificar o Stack Trace, o erro é causado no arquivo JPAUtil.java (linha 33: em = JPAUtil.factory.createEntityManager();), e no arquivo LivroBean.java (linha 37: EntityManager em = JPAUtil.getEntityManager();).
Acabaram-se as minhas ideias… Mais uma vez preciso da ajuda de vocês…
O projeto está no GitHub: https://github.com/fredjr10/livraria-espirita
Obrigado pela ajuda e pela paciência!
Abraços.
O seu projeto tem dois arquivos de configuração para o hibernate que é o hibernate.cfg.xml e o persistence.xml. Acho que isso pode estar dando conflito. Acho que por padrão ele está pegando o arquivo hibernate.cfg.xml para configurações do banco, por isso ele está dando nullpoint, pois não encontra “biblioteca” de
Persistence.createEntityManagerFactory(“biblioteca”);
Olá Gracyane.
Eliminei o arquivo hibernate.cfg.xml e mantive o padrão do livros, que é o persistence.xml. Não funcionou. O erro continua ocorrendo.
Eu utilizo o Eclipse em meus projetos. Na hierarquia de pacotes eu coloco o arquivo persistence.xml no seguinte caminho:
src/main/resources/META-INF/persistence.xml
Até onde eu sei esse é o local padrão deste arquivo. É preciso criar o diretório META-INF dentro de resources e dentro de META-INF vai o persistence.xml
Vi o seu projeto no github e o arquivo persistence.xml está em um diretório diferente do padrão usado e que costumo utilizar em meus projetos.
Eu uso o NetBeans, atualmente na versão 8.1. Por padrão ele cria os arquivos de configuração na estrutura de projeto como foi postado no GitHub. Mesmo assim fiz as alterações sugeridas, e as mesmas não surtiram o efeito desejado.
vc ja olho no conteúdo do seu war se o persistence.xml esta na dentro da pasta META-INF
- webapp/classes/META-INF/persistence.xml
Olà Danilo.
O arquivo está na pasta certa, conforme você mencionou.
Olá @fred_jr10, eu olhei o seu projeto no Github, e acho que identifiquei seu problema. No persistence.xml, está faltando as informações para realizar a conexão com o banco, como a url do banco de dados, usuario e senha para autentificação. Pois os arquivos persistence.xml e o hibernate.cfg.xml apesar de serem utilizados para a mesma função, são arquivos diferentes que não se complementam, é tanto que na classe JPAUtil, você chama o persistence.xml .
Adicione as linhas de código:
<property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver" />
<property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/biblioteca" />
<property name="javax.persistence.jdbc.user" value="SeuUsuario" />
<property name="javax.persistence.jdbc.password" value="SuaSenha" />
Testa e me informa se deu certo.
Olá Raniere.
Fiz as alterações, mas o erro continua. O( stack trace informa que o problema está em Biblioteca.JPAUtil.getEntityManager(JPAUtil.java:33) e em Biblioteca.LivroBean.salva(LivroBean.java:37), mas não percebi o que pode estar errado.