Pessoal, to com um problema ao tentar executar um programa para teste, um simples Projeto apenas
para testar JPA , Inclusive é aquele do Blog do Edson Gonsalves
fiz tudo igual mais o erro java.lang.NullPointerException ocorre e o projeto ele não tem qse nada
eu ja nem sei o que olhar.
[code]
public static void main(String[] args) {
// TODO Auto-generated method stub
O erro ocorre justamente na linha EntityManager em = emf.createEntityManager();
eu ja conferi tudo DRIVE do Postgre, as livrarias do EclipseLink…
será que alguem sabe o que pode estar ocorrendo?
[EL Finest]: 2011-06-21 13:47:27.28--ServerSession(12115735)--Thread(Thread[main,5,main])--property=javax.persistence.jdbc.user; value=postgres
[EL Finest]: 2011-06-21 13:47:27.28--ServerSession(12115735)--Thread(Thread[main,5,main])--property=javax.persistence.jdbc.password; value=xxxxxx
Exception in thread "main" javax.persistence.PersistenceException: java.lang.NullPointerException
at org.eclipse.persistence.internal.jpa.EntityManagerSetupImpl.deploy(EntityManagerSetupImpl.java:422)
at org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl.getServerSession(EntityManagerFactoryImpl.java:185)
at org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl.createEntityManagerImpl(EntityManagerFactoryImpl.java:242)
at org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:230)[EL Severe]: 2011-06-21 13:47:29.468--ServerSession(12115735)--Thread(Thread[main,5,main])--java.lang.NullPointerException
at java.util.ResourceBundle.getBundle(ResourceBundle.java:950)
at org.eclipse.persistence.exceptions.i18n.ExceptionMessageGenerator.buildMessage(ExceptionMessageGenerator.java:47)
at org.eclipse.persistence.exceptions.ValidationException.errorDecryptingPassword(ValidationException.java:842)
at org.eclipse.persistence.internal.security.JCEEncryptor.decryptPassword(JCEEncryptor.java:124)
at org.eclipse.persistence.internal.jpa.EntityManagerSetupImpl.updateLogins(EntityManagerSetupImpl.java:1299)
at org.eclipse.persistence.internal.jpa.EntityManagerSetupImpl.updateServerSession(EntityManagerSetupImpl.java:1589)
at org.eclipse.persistence.internal.jpa.EntityManagerSetupImpl.deploy(EntityManagerSetupImpl.java:377)
at org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl.getServerSession(EntityManagerFactoryImpl.java:185)
at org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl.createEntityManagerImpl(EntityManagerFactoryImpl.java:242)
at org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:230)
at br.com.dominio.teste.TesteDaJpa.main(TesteDaJpa.java:16)
1º. Seu arquivo persistence.xml esta dentro de uma pasta META-INF no seu projeto? Creio q seja necessario que esteja, ja tive problemas em um projeto uma vez q o arquivo não se encontrava nesta pasta, mas ñ posso garantir que isto seja uma regra mas vc pode verificar.
2º Como vc não esta usando nenhum Application Server (jboss / glassfish / …) talves seja necessário vc indicar qual o seu provedor de persistencia, segue a linha da declaração usando o hibernate, mas vc acha facil na internet um para o eclipseLink:
Thiago meu prezado, … sobre o local onde esta o Persistence ele esta dentro do scr\META-INF isto a propria IDE ja arruma
pra gente.
Realmente não estou em um Container, nem um Servidor de Aplicações, se bem … que na verdade
eu venho de um so que como o outro projeto usando o Tomcat dá o mesmo problema, resolvi fazer
um novo projeto um projeto JPA so pra testar, agora o incrive é que o mesmo projeto no NetBeans
não da erro,
Meu projeto mesmo é um envolvendo JSF 2, JPA , Spring 3, so que qdo não da erro na JPA, da Erro no Spring
qdo eu resolvo fazer um projeto so para a JPA ele também da erro, ja no NetBeans não da erro no JPA
eu consigo testar sem problema mais qdo eu coloco o Spring ele não sai do canto…
cara … aprender Java realmente é dificil, quer dizer dificil é fazer funcionar porque os tutoriais não.
Desculpe parece um desabafo é que eu realmente não sou programador Java ( tenho a intenção sim )
mais a meses que venho tentando…
rlira, tranquilo sobre o “desabafo” na realidade sempre q a gente se envolve com algo novo temos a tendencia de dizer q é dificil, isso é normal, mas se vc parar pra pensar, quantos anos ficamos aprendendo a falar o nosso idioma (do periodo da pré escola até agora pra ser sincero) e mesmo assim não o compreendemos por completo? Uma linguagem de programação pode ser comparada a um idioma, devemos sempre estudar para aprendermos mais e pelo menos sermos auto suficientes em grande parte, pois o todo nunca vamos alcançar. Por isso não desanime!
Voltando ao nosso problema, quando me referi a vc usar um servidor é com relação a definir o persistenceProvider, que no seu post q exibe o persistenceUnit esta declaração não aparece. Vc ja testou isso?
Legal isso da JPA2, preciso testar ela.
Cara vi outra coisa aqui no seu persistence, não ta dizendo qual é o dialeto do bd usado, tenta adicionar a seguinte linha ao seu arquivo junto com as outras propriedades.
Mas vc tem q procurar o property da JPA pro dialeto ja q vc não ta usando o hibernate.
Bem sera que é algum bug do Eclipse? porque eu testei este pequeno projeto no NetBeans
e ali o teste não apresenta erro algum, na verdade fui um pouco alem, fiz uma consulta
Depois vou testar criar um exemplo simples com JPA 2 e mapear so uma classe e fazer um crud, mas so vou poder ver isso amanha hj to corrido aqui no serviço, eu uso sempre o eclipse. Não vou me preocupar com outros frameworks, apenas um main class como vc estava fazendo pra ver se funciona legal, dai posto depois pra vc a minha conclusão. Se quiser passar o ambiente q vc esta testando fica mais facil pra mim.
Cara agradeço muito, então… veja o projeto que estou fazendo é um paralelo justamente por meu projeto não estar indo a frente
um com JSF 2, JPA ( EclipseLink ), Spring 3 ( para ID ), usando o PostgreSql no Tomcat. como não rolou entao eu
decidi dividir para encontrar o erro.
então é aquilo que tá lá o que muda pra mim é que tô usando postgre 8.2 so isto
mais é um projeto simples que so tem uma classe que é a de teste.
“Na caixa de diálogo New JPA Project, digite o nome do projeto em Project name. No exemplo que usaremos será chamado de JpaNaPratica. Em Configuration, mantenha em Minimal JPA 2.0 Configuration. Clique no botão Next para prosseguir.”
ou seja é um projeto que pra ler demora mais do que fazer muito simples e por ser simples cara não tem nem onde eu procurar o erro, rsrsrs
Como prometi fiz um teste aqui usando o eclipse helios, td funcionou legal cara, vou relatar os passos que segui:
Criei um projeto java;
Criei um pacote e adicionei uma classe Produto com id e nome apenas (ñ precisa muito pra testar né…rsrsr)
Criei uma pasta lib onde adicionei meu jar do driver jdbc (postgresql)
Adicionei o jar acima citado ao classpath do projeto
Baixei o pacote do eclipseLink pelo proprio eclipse, ele baixa algumas libs a mais, mas creio q só precise da eclipseLink.jar e da javax.persistence_2.0.3.
Criei uma classe main e inseri um produto.
O que percebi de diferente foi somente a sintaxe usada no persistence.xml na parte da configuração.
Td funcionou certinho sem problemas, se quiser me passa teu email pessoal q compacto o projeto e te envio pra vc testar ai. Não cheguei a testar com um projeto JSF2, pois pelo q percebi seu problema tinha sido apenas com eclipse e JPA2, certo?
Então, o que eu notei de diferente é que vc menciona que na pasta Lib vc colocou o Drive do Postgre
e na linha seguinte vc menciona Adicionei o jar ao classpath do projeto
bem eu fiz exatamente como consta no blog do Edson Gonçalves
Eu criei Bibliotecas de usuario onde cada uma delas faz referencia aos Jar´s
ou seja Biblioteca para o EclipseLink, outra para o Postgre
Meu nobre achei o “Problema” cara vc ontem me perguntou “mais vc adicionou essas bibliotecas do usuario ao classpath do seu projeto?” bem eu não achei que precisava na verdade em nenhum Tutorial ou Video que eu peguei eu vi isto, alias minto eu vi
um video do Ivan Saldadori no You Tube no qual ele cria as bibliotecas de usuario para o EclipseLink e no momento do teste
ele insere na pasta Lib o Jar do Banco de dados.
Cara este tempo todo o meu projeto com JSF Spring 3 e JPA com certeza não decolou por conta de Biblioteca de Usuario, pra que
então serve isto se eu tenho que pegar os Jar´s e colocar na pasta Lib?
O seu projeto funcionou perfeito apos eu ter Importado ele no Eclipse mais, qdo eu tava procurando o que o seu projeto difere do
meu eu resolvi colocar no seu a biblioteca de usuario, ao executar deu erro, eu removi a biblioteca de usuario e executei novamente
e funcionou ai eu percebi que Biblioteca de usuario é e sempre foi o causador do meu problema e nenhuma mensagem de erro
evidenciava isto, há e não é problema de maquina nem de SO porque aqui no trabalho da o mesmo erro.
Bem eu descobri o “Problema” muito Obrigado, so queria agora entender pra que Biblioteca de usuario, eu so estou com o meu
projeto parado porque este tempo todo segui Tutoriais.
Bom dia Robson, cara vc ta quase la, na verdade a biblioteca do usuario vc não precisa colocar ela na pasta lib do seu projeto, apenas referencia-la no seu classpath.