2013-04-05 4 views
6

J'ai mis en place un projet dans Netbeans, créé un script, fait une nouvelle base de données avec javadb. Je peux connecter en IUG - afficher les tables contenu etc, mais quand je lance une application avec:Classe [org.apache.derby.jdbc.ClientDriver] introuvable. Lorsque vous essayez de vous connecter à db

EntityManager em = Persistence.createEntityManagerFactory("lab5PU").createEntityManager(); 

i obtenir cette exception assez longue:

[EL Info]: 2013-04-05 21:40:45.554--ServerSession(1198260109)--EclipseLink, version: Eclipse Persistence Services - 2.3.0.v20110604-r9504 
[EL Severe]: 2013-04-05 21:40:45.574--ServerSession(1198260109)--Local Exception Stack: 
Exception [EclipseLink-4003] (Eclipse Persistence Services - 2.3.0.v20110604-r9504): org.eclipse.persistence.exceptions.DatabaseException 
Exception in thread "AWT-EventQueue-0" javax.persistence.PersistenceException: Exception [EclipseLink-4003] (Eclipse Persistence Services - 2.3.0.v20110604-r9504): org.eclipse.persistence.exceptions.DatabaseException 
Exception Description: Configuration error. Class [org.apache.derby.jdbc.ClientDriver] not found. 
Exception Description: Configuration error. Class [org.apache.derby.jdbc.ClientDriver] not found. 
    at org.eclipse.persistence.exceptions.DatabaseException.configurationErrorClassNotFound(DatabaseException.java:82) 

Je peux voir les pilotes JavaDB en la section du pilote dans les services, donc je n'ai aucune idée de ce que l'erreur pourrait être.

EDIT: persistance.xml comme demandé:

<?xml version="1.0" encoding="UTF-8"?> 
<persistence version="2.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_2_0.xsd"> 
    <persistence-unit name="lab5PU" transaction-type="RESOURCE_LOCAL"> 
    <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider> 
    <class>lab5.Colleagues</class> 
    <properties> 
     <property name="javax.persistence.jdbc.url" value="jdbc:derby://localhost:1527/lab5"/> 
     <property name="javax.persistence.jdbc.password" value="mypass"/> 
     <property name="javax.persistence.jdbc.driver" value="org.apache.derby.jdbc.ClientDriver"/> 
     <property name="javax.persistence.jdbc.user" value="admin"/> 
     <property name="eclipselink.ddl-generation" value="create-tables"/> 
    </properties> 
    </persistence-unit> 
</persistence> 

enter image description here

+0

Où votre connexion db est-elle configurée? Dans 'persistence.xml'? Pouvez-vous montrer cette configuration? – pepuch

+0

@ PatrykRoszczyniała ajouté persistance.xml comme demandé –

+0

Je suis nouveau dans JEE mais ce pilote 'com.mysql.jdbc.Driver' fonctionne pour mon application. – pepuch

Répondre

25

Je pense que le problème que vous avez est que vous n'avez pas le pilote Derby dans le classpath du projet.

Vous pouvez facilement obtenir que l'ajout de la bibliothèque JavaDB à votre projet:

  • clic droit sur le projet
  • Propriétés -> Bibliothèques
  • Ajouter Library -> JavaDB pilote

Cela inclut derby.jar, derbyclient.jar et derbynet.jar dans le chemin de classe de votre projet.

La derbyclient.jar contient la classe org.apache.derby.jdbc.ClientDriver dont votre code se plaint.

+0

Je n'ai pas une option pour sélectionner cette librairie, j'ai téléchargé les libs derby, où devrais-je les mettre? –

+0

Désolé, ce n'est pas "Java DB" mais "Java DB Driver" ... (dans NetBeans 7.3) – jalopaba

+0

en les ajoutant via ajouter jar/dossier fixe le problème, merci! –

Questions connexes