Problemas no provider de aplicação de cadastro

14 respostas
analistaadilson

Oi Pessoal,

Estou com um probleminha (?) para executar minha pequena aplicação de cadastro que fiz usando netbeans 7.0. Parece que a mensagem de erro mostra que falta um provider para ser criado o EntityManager, eu não tenho idéia de como fazer isso. Só utilizei a Interface Swing pra criar no NetBeans tudo. Consegui colocar um BD MySql no projeto mas, não sei como codificar isso...se puderem lançar uma Luz, agradeço muitíssimo! Abraços! :roll: :cry:
run:
19/12/2011 22:59:45 org.jdesktop.application.Application$1 run
GRAVE: Application class membrosdb.MembrosDBApp failed to launch
javax.persistence.PersistenceException: No Persistence provider for EntityManager named mysqlPU:  The following providers:
oracle.toplink.essentials.PersistenceProvider
oracle.toplink.essentials.ejb.cmp3.EntityManagerFactoryProvider
Returned null to createEntityManagerFactory.

	at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:154)
	at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:83)
	at membrosdb.MembrosDBView.initComponents(MembrosDBView.java:339)
	at membrosdb.MembrosDBView.<init>(MembrosDBView.java:36)
	at membrosdb.MembrosDBApp.startup(MembrosDBApp.java:19)
	at org.jdesktop.application.Application$1.run(Application.java:171)
	at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:641)
	at java.awt.EventQueue.access$000(EventQueue.java:84)
	at java.awt.EventQueue$1.run(EventQueue.java:602)
	at java.awt.EventQueue$1.run(EventQueue.java:600)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:611)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
Exception in thread "AWT-EventQueue-0" java.lang.Error: Application class membrosdb.MembrosDBApp failed to launch
	at org.jdesktop.application.Application$1.run(Application.java:177)
	at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:641)
	at java.awt.EventQueue.access$000(EventQueue.java:84)
	at java.awt.EventQueue$1.run(EventQueue.java:602)
	at java.awt.EventQueue$1.run(EventQueue.java:600)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:611)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
Caused by: javax.persistence.PersistenceException: No Persistence provider for EntityManager named mysqlPU:  The following providers:
oracle.toplink.essentials.PersistenceProvider
oracle.toplink.essentials.ejb.cmp3.EntityManagerFactoryProvider
Returned null to createEntityManagerFactory.

	at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:154)
	at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:83)
	at membrosdb.MembrosDBView.initComponents(MembrosDBView.java:339)
	at membrosdb.MembrosDBView.<init>(MembrosDBView.java:36)
	at membrosdb.MembrosDBApp.startup(MembrosDBApp.java:19)
	at org.jdesktop.application.Application$1.run(Application.java:171)
	... 14 more
CONSTRUÍDO COM SUCESSO (tempo total: 14 segundos)

14 Respostas

carlos.e.a

Amigo abra o persistence.xml. La tem a tag que é onde voce deve fornecer a sua implementacao da JPA. Para o hibernate por exemplo se nao me engano é org.hibernate.ejb.hibernatepersistence

Se tiver usando outra implementacao vai ter que olhar na documentacao.

edit 1: Aparentemente voce esta usando top link. Dessa maneira voce deve se certificar que as libs estao no classpatch do seu projeto.

edit 2: Se voce esta usando o netbeans e nao configurou nada provavelmente ele deve ter adicionado as bibliotecas pra voce. Olha se tem essas 4 libs no seu projeto:

toplink-essetials.jar
toplink-essentials-agent.jar

eclipselink-2.0.0.jar
eclipselink-javax-persistence-2.0.jar

Se estiverem todas nas suas bibliotecas entao acho que voce vai ter que postar seu persistence.xml pra gente ver. Fica dentro do pacote META-INF no netbeans. Apesar de eu ter quase certeza que esse problema é de falta de biblioteca mesmo…alguma dessas 4.

analistaadilson

Caro Carlos,

Ótimas explicações! Obrigado, farei a verificação assim que estiver em casa e retorno
para comentarmos…abraços! :smiley:

analistaadilson

Caro Carlos,

Olhei no projeto que chamei MembrosDB em Bibliotecas no Netbeans, que

toplink-essetials.jar
toplink-essentials-agent.jar

estão presentes. Não encontrei:

eclipselink-2.0.0.jar
eclipselink-javax-persistence-2.0.jar

e por que devo te-los se uso o NetBeans e não o Eclipse?

O Provider parece que está preenchido normal, vou postar o XML pra vc ver:

<?xml version="1.0" encoding="UTF-8"?> <persistence version="1.0" 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"> <persistence-unit name="mysqlPU" transaction-type="RESOURCE_LOCAL"> <provider>oracle.toplink.essentials.PersistenceProvider</provider> <class>membrosdb.User</class> <properties> <property name="toplink.jdbc.user" value="root"/> <property name="toplink.jdbc.password" value="admin"/> <property name="toplink.jdbc.url" value="jdbc:mysql://localhost:3306/mysql"/> <property name="toplink.jdbc.driver" value="com.mysql.jdbc.Driver"/> </properties> </persistence-unit> </persistence>

No aguardo de suas preciosas orientações para continuar, Obrigado até aqui… :idea:
Abraços!

ViniGodoy

Além do provider, creio que seu caps lock também esteja com problemas.

Por favor, desligue-o ao postar tópicos ou títulos de tópicos.
Não tem porque querer chamar mais a atenção do que os outros.

carlos.e.a

Nao amigo. Voce deve ter as 4.

eclipselink-2.0.0.jar
eclipselink-javax-persistence-2.0.jar

Tambem devem estar la.

Nao tem nada a ver com a sua IDE. Eclipselink é a versao “free” do toplink. Nao vou entrar em muitos detalhes mas o fato é que a Oracle doou os fontes de uma das versoes do TopLink pra fundacao Eclipse por isso essa divergencia nos nomes mas entenda que nao tem nada a ver com IDE.

No netbeans voce pode procurar por essas bibliotecas que elas devem estar la por padrao. Coloque em bibliotecas > botao direito > adicionar bibliotecas. La voce vai ter uma lista de bibliotecas que estao disponiveis por padrao. Adicione EclipseLink(JPA 2) ou coisa parecida que ele ira adicionar essas duas ao seu classpatch.

analistaadilson

Carlos Obrigado pelas dicas e informações , verificarei…

Abraço.

analistaadilson

[b]CARO CARLOS,

SEGUI SEUS CONSELHOS. REALMENTE CONSEGUI ADICIONAR AS BIBLIOTECAS FALTANTES MAS,
O PROBLEMA CONTINUA, NÃO CONSIGO EXECUTAR A APLICAÇÃO…

OBRIGADO PELA AJUDA![/b] :roll:

carlos.e.a

Amigo pode ate nao estar rodando mas que esse era UM DOS problemas isso era. Fiz testes aqui e sem qualquer das 4 libs uma aplicacao com toplink nao funciona nem a pau.

ps: voce vai acabar levando ban por escrever em caixa alta mesmo depois de ter sido avisado.

analistaadilson

[b]Carlos,

Obrigado pelas dicas, seguirei com as descobertas. Sobre o Caps, não fui avisado, fui IRONIZADO é diferente…
NÃO LEVO EM CONTA IRONIAS, NÃO RESPONDO A QUEM NÃO TEM CAPACIDADE SEQUER PRA FALAR COM OS OUTROS…
(VOCE PODE DIZER A COISA CERTA DA MANEIRA ERRADA!)
ABRAÇOS CARLOS E ATÉ MAIS![/b] :idea:

ViniGodoy

Olá Bruce Wayne.

Por favor, pare de usar o caps lock. Caso contrário, iremos trancar seus tópicos.
Se quiser gritar, grite em sua casa.

analistaadilson

Não se preocupe JÁ INFORMEI A ADMINISTRAÇÃO DO GUJ os seus maus procedimentos aqui para comigo.
Vc deve ser uma dessas pessoas que não tem o minimo de educação para falar com os outros. Deve ser
coisa de berço. Uma coisa é pedir E SABER PEDIR, OU LEMBRAR E SABER COMO FAZE-LO, OUTRA COISA
É IRONIZAR E GRITAR COM OS OUTROS. VAI GRITAR COM SEUS FILHOS, demente, indio, selvagem, animal (IBAMA E FUNAI que me desculpem a ofensa)!
Não se dirija a minha pessoa de novo pois, gente do seu nível não merece minha atenção!

ViniGodoy

Rapaz, acho que você está um tanto alterado demais.

Eu nem sequer gritei com você.
Na Internet, usar letras maiúsculas é que é considerado grito.

Você tem certeza que minhas mensagens são motivo para tanto?

Em todo caso, acho que vale muito a pena você ler a seguinte página, que explica como funciona a conduta em fóruns de maneira geral:
http://www.istf.com.br/perguntas/

Especial atenção nos tópicos “Escreva de modo claro, gramatical e sintaticamente correto”, “Lidando com grosserias” e “Não reaja como um otário”.

analistaadilson

Vini,

Desculpas, sinto muito, mas, o que não gostei foi da Ironia e forma de falar comigo,
coloquei minha conta a disposição da Administração e prestei
meus agradecimentos a eles e todos por email…
se puder apague meu tópico anterior …retiro o que disse…abraços …lerei com
calma depois sua indicação…valeu!

ViniGodoy

Desculpe também, minha intenção não era te ofender ou ser irônico, mas relendo vi que soou assim.

Criado 19 de dezembro de 2011
Ultima resposta 22 de dez. de 2011
Respostas 14
Participantes 3