Trying to connect to Derby Database using OpenJPA in a Maven project, but getting a "java.sql.SQLException" error. -


so did sudo apt-get install sun-javadb-client sun-javadb-core. added javadb/bin path , exported derby_home. created database doing connect 'jdbc:derby:/home/ijk/mydbtest;create=true'; using ij. i used tutorial first part. dblook gives

ijk@ubuntuvm:~$ dblook -d 'jdbc:derby:/home/ijk/mydbtest' -- timestamp: 2014-06-27 18:32:11.933 -- source database is: /home/ijk/mydbtest -- connection url is: jdbc:derby:/home/ijk/mydbtest -- appendlogs: false 

now have maven project following pom.xml

<project xmlns="http://maven.apache.org/pom/4.0.0" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xsi:schemalocation="http://maven.apache.org/pom/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelversion>4.0.0</modelversion>  <groupid>com.groupdo</groupid> <artifactid>server</artifactid> <version>0.0.1-snapshot</version> <packaging>jar</packaging>  <name>server</name> <url>http://maven.apache.org</url>  <properties>     <project.build.sourceencoding>utf-8</project.build.sourceencoding> </properties>  <dependencies>     <dependency>         <groupid>junit</groupid>         <artifactid>junit</artifactid>         <version>3.8.1</version>         <scope>test</scope>     </dependency>      <dependency>         <groupid>org.apache.openjpa</groupid>         <artifactid>openjpa-all</artifactid>         <version>2.3.0</version>     </dependency>      <dependency>         <groupid>org.apache.derby</groupid>         <artifactid>derbyclient</artifactid>         <version>10.10.2.0</version>     </dependency>  </dependencies> 

here 1 entity class trying work with:

package com.groupdo.models;  import javax.persistence.*; import java.io.serializable; import java.util.date;  @entity(name = "user") public class user implements serializable{      @id     @column(name = "username", nullable = false)     private string username;      @column(name = "password", nullable = false)     private string password;      public string getusername() {         return username;     }      public void setusername(string username) {         this.username = username;     }      public string getpassword() {         return password;     }      public void setpassword(string password) {         this.password = password;     }  } 

here persistence.xml

<?xml version="1.0"?> <persistence xmlns="http://java.sun.com/xml/ns/persistence" version="2.0">     <persistence-unit name="testjpa" transaction-type="resource_local">         <provider>             org.apache.openjpa.persistence.persistenceproviderimpl         </provider>         <class>entity.user</class>         <properties>             <property name="openjpa.connectionurl" value="jdbc:derby:/home/ijk/mydbtest;create=true" />             <property name="openjpa.connectiondrivername" value="org.apache.derby.jdbc.clientdriver" />             <property name="openjpa.connectionusername" value="admin" />             <property name="openjpa.connectionpassword" value="admin" />             <property name="openjpa.log" value="sql=trace" />         </properties>     </persistence-unit> </persistence> 

and here class trying test set with:

package com.groupdo.server;  import javax.persistence.entitymanager; import javax.persistence.entitymanagerfactory; import javax.persistence.entitytransaction; import javax.persistence.persistence;  import com.groupdo.models.user;  public class test {      public static void main(string[] args) {             entitymanagerfactory entitymanagerfactory =  persistence.createentitymanagerfactory("testjpa");         entitymanager em = entitymanagerfactory.createentitymanager();         entitytransaction usertransaction = em.gettransaction();          usertransaction.begin();         user user = new user();         user.setusername("alex");         user.setpassword("pass");         em.persist(user);         usertransaction.commit();         em.close();         entitymanagerfactory.close();     }  } 

i getting following stack trace , don't know what's wrong:

503  testjpa  info   [main] openjpa.runtime - openjpa dynamically loaded class enhancer. classes not enhanced @ build time enhanced when loaded jvm. slf4j: failed load class "org.slf4j.impl.staticloggerbinder". slf4j: defaulting no-operation (nop) logger implementation slf4j: see http://www.slf4j.org/codes.html#staticloggerbinder further details. 659  testjpa  info   [main] openjpa.runtime - openjpa dynamically loaded validation provider. 686  testjpa  info   [main] openjpa.runtime - starting openjpa 2.3.0 722  testjpa  info   [main] openjpa.jdbc.jdbc - using dictionary class "org.apache.openjpa.jdbc.sql.derbydictionary". exception in thread "main" <openjpa-2.3.0-r422266:1540826 nonfatal general error> org.apache.openjpa.persistence.persistenceexception: there errors initializing configuration: <openjpa-2.3.0-r422266:1540826 fatal user error> org.apache.openjpa.util.userexception: connection not obtained driver class "org.apache.derby.jdbc.clientdriver" , url "jdbc:derby:/home/ijk/mydbtest;create=true".  may have specified invalid url.     @ org.apache.openjpa.jdbc.schema.datasourcefactory.newconnectexception(datasourcefactory.java:255)     @ org.apache.openjpa.jdbc.schema.datasourcefactory.installdbdictionary(datasourcefactory.java:241)     @ org.apache.openjpa.jdbc.conf.jdbcconfigurationimpl.getconnectionfactory(jdbcconfigurationimpl.java:733)     @ sun.reflect.nativemethodaccessorimpl.invoke0(native method)     @ sun.reflect.nativemethodaccessorimpl.invoke(nativemethodaccessorimpl.java:57)     @ sun.reflect.delegatingmethodaccessorimpl.invoke(delegatingmethodaccessorimpl.java:43)     @ java.lang.reflect.method.invoke(method.java:606)     @ org.apache.openjpa.lib.conf.configurationimpl.instantiateall(configurationimpl.java:310)     @ org.apache.openjpa.conf.openjpaconfigurationimpl.instantiateall(openjpaconfigurationimpl.java:1670)     @ org.apache.openjpa.kernel.abstractbrokerfactory.makereadonly(abstractbrokerfactory.java:651)     @ org.apache.openjpa.kernel.abstractbrokerfactory.newbroker(abstractbrokerfactory.java:203)     @ org.apache.openjpa.kernel.delegatingbrokerfactory.newbroker(delegatingbrokerfactory.java:155)     @ org.apache.openjpa.persistence.entitymanagerfactoryimpl.createentitymanager(entitymanagerfactoryimpl.java:226)     @ org.apache.openjpa.persistence.entitymanagerfactoryimpl.createentitymanager(entitymanagerfactoryimpl.java:153)     @ org.apache.openjpa.persistence.entitymanagerfactoryimpl.createentitymanager(entitymanagerfactoryimpl.java:59)     @ com.groupdo.server.test.main(test.java:14) caused by: org.apache.commons.dbcp.sqlnestedexception: cannot create jdbc driver of class 'org.apache.derby.jdbc.clientdriver' connect url 'jdbc:derby:/home/ijk/mydbtest;create=true'     @ org.apache.commons.dbcp.basicdatasource.createconnectionfactory(basicdatasource.java:1452)     @ org.apache.commons.dbcp.basicdatasource.createdatasource(basicdatasource.java:1371)     @ org.apache.commons.dbcp.basicdatasource.getconnection(basicdatasource.java:1044)     @ org.apache.openjpa.jdbc.schema.dbcpdriverdatasource.getdbcpconnection(dbcpdriverdatasource.java:74)     @ org.apache.openjpa.jdbc.schema.autodriverdatasource.getconnection(autodriverdatasource.java:42)     @ org.apache.openjpa.jdbc.schema.simpledriverdatasource.getconnection(simpledriverdatasource.java:76)     @ org.apache.openjpa.lib.jdbc.delegatingdatasource.getconnection(delegatingdatasource.java:118)     @ org.apache.openjpa.lib.jdbc.decoratingdatasource.getconnection(decoratingdatasource.java:93)     @ org.apache.openjpa.jdbc.schema.datasourcefactory.installdbdictionary(datasourcefactory.java:233)     ... 14 more caused by: java.sql.sqlexception: no suitable driver     @ java.sql.drivermanager.getdriver(drivermanager.java:278)     @ org.apache.commons.dbcp.basicdatasource.createconnectionfactory(basicdatasource.java:1437)     ... 22 more      @ org.apache.openjpa.kernel.abstractbrokerfactory.newbroker(abstractbrokerfactory.java:218)     @ org.apache.openjpa.kernel.delegatingbrokerfactory.newbroker(delegatingbrokerfactory.java:155)     @ org.apache.openjpa.persistence.entitymanagerfactoryimpl.createentitymanager(entitymanagerfactoryimpl.java:226)     @ org.apache.openjpa.persistence.entitymanagerfactoryimpl.createentitymanager(entitymanagerfactoryimpl.java:153)     @ org.apache.openjpa.persistence.entitymanagerfactoryimpl.createentitymanager(entitymanagerfactoryimpl.java:59)     @ com.groupdo.server.test.main(test.java:14) caused by: java.lang.runtimeexception: there errors initializing configuration: <openjpa-2.3.0-r422266:1540826 fatal user error> org.apache.openjpa.util.userexception: connection not obtained driver class "org.apache.derby.jdbc.clientdriver" , url "jdbc:derby:/home/ijk/mydbtest;create=true".  may have specified invalid url.     @ org.apache.openjpa.jdbc.schema.datasourcefactory.newconnectexception(datasourcefactory.java:255)     @ org.apache.openjpa.jdbc.schema.datasourcefactory.installdbdictionary(datasourcefactory.java:241)     @ org.apache.openjpa.jdbc.conf.jdbcconfigurationimpl.getconnectionfactory(jdbcconfigurationimpl.java:733)     @ sun.reflect.nativemethodaccessorimpl.invoke0(native method)     @ sun.reflect.nativemethodaccessorimpl.invoke(nativemethodaccessorimpl.java:57)     @ sun.reflect.delegatingmethodaccessorimpl.invoke(delegatingmethodaccessorimpl.java:43)     @ java.lang.reflect.method.invoke(method.java:606)     @ org.apache.openjpa.lib.conf.configurationimpl.instantiateall(configurationimpl.java:310)     @ org.apache.openjpa.conf.openjpaconfigurationimpl.instantiateall(openjpaconfigurationimpl.java:1670)     @ org.apache.openjpa.kernel.abstractbrokerfactory.makereadonly(abstractbrokerfactory.java:651)     @ org.apache.openjpa.kernel.abstractbrokerfactory.newbroker(abstractbrokerfactory.java:203)     @ org.apache.openjpa.kernel.delegatingbrokerfactory.newbroker(delegatingbrokerfactory.java:155)     @ org.apache.openjpa.persistence.entitymanagerfactoryimpl.createentitymanager(entitymanagerfactoryimpl.java:226)     @ org.apache.openjpa.persistence.entitymanagerfactoryimpl.createentitymanager(entitymanagerfactoryimpl.java:153)     @ org.apache.openjpa.persistence.entitymanagerfactoryimpl.createentitymanager(entitymanagerfactoryimpl.java:59)     @ com.groupdo.server.test.main(test.java:14) caused by: org.apache.commons.dbcp.sqlnestedexception: cannot create jdbc driver of class 'org.apache.derby.jdbc.clientdriver' connect url 'jdbc:derby:/home/ijk/mydbtest;create=true'     @ org.apache.commons.dbcp.basicdatasource.createconnectionfactory(basicdatasource.java:1452)     @ org.apache.commons.dbcp.basicdatasource.createdatasource(basicdatasource.java:1371)     @ org.apache.commons.dbcp.basicdatasource.getconnection(basicdatasource.java:1044)     @ org.apache.openjpa.jdbc.schema.dbcpdriverdatasource.getdbcpconnection(dbcpdriverdatasource.java:74)     @ org.apache.openjpa.jdbc.schema.autodriverdatasource.getconnection(autodriverdatasource.java:42)     @ org.apache.openjpa.jdbc.schema.simpledriverdatasource.getconnection(simpledriverdatasource.java:76)     @ org.apache.openjpa.lib.jdbc.delegatingdatasource.getconnection(delegatingdatasource.java:118)     @ org.apache.openjpa.lib.jdbc.decoratingdatasource.getconnection(decoratingdatasource.java:93)     @ org.apache.openjpa.jdbc.schema.datasourcefactory.installdbdictionary(datasourcefactory.java:233)     ... 14 more caused by: java.sql.sqlexception: no suitable driver     @ java.sql.drivermanager.getdriver(drivermanager.java:278)     @ org.apache.commons.dbcp.basicdatasource.createconnectionfactory(basicdatasource.java:1437)     ... 22 more      @ org.apache.openjpa.lib.conf.configurationimpl.instantiateall(configurationimpl.java:324)     @ org.apache.openjpa.conf.openjpaconfigurationimpl.instantiateall(openjpaconfigurationimpl.java:1670)     @ org.apache.openjpa.kernel.abstractbrokerfactory.makereadonly(abstractbrokerfactory.java:651)     @ org.apache.openjpa.kernel.abstractbrokerfactory.newbroker(abstractbrokerfactory.java:203)     ... 5 more 

i changed <property name="openjpa.connectiondrivername" value="org.apache.derby.jdbc.clientdriver" /> <property name="openjpa.connectiondrivername" value="org.apache.derby.jdbc.embeddeddriver" /> (and corresponding maven dependency) , got past problem onto new problem (of entity enhancement).


Comments

Popular posts from this blog

javascript - RequestAnimationFrame not working when exiting fullscreen switching space on Safari -

jsf - How to ajax update an item in the footer of a PrimeFaces dataTable? -

jquery - Keeping Kendo Datepicker in min/max range -