Hi Christian,

You might have a typo in persistence.xml. The error you're seeing happens
because OpenJPA can't get a connection to the database.

Specifically it looks like you're missing the // in
jdbc:mysql://localhost:3306/colibrits

<property
               name="openjpa.ConnectionURL"
               value="jdbc:mysql:localhost:3306/colibrits"/>

It's a weird error message though, I would have expected something like this
:

<openjpa-1.1.0-SNAPSHOT-r420667:605679M nonfatal general error>
org.apache.openjpa.persistence.PersistenceException: There were errors
initializing your configuration: <openjpa-1.1.0-SNAPSHOT-r420667:605679M
fatal store error> org.apache.openjpa.util.StoreException: Cannot create
JDBC driver of class 'com.mysql.jdbc.Driver' for connect URL
'jdbc:mysql:localhost:3306/schematest'
    at org.apache.openjpa.jdbc.schema.DataSourceFactory.installDBDictionary(
DataSourceFactory.java:237)
    at
org.apache.openjpa.jdbc.conf.JDBCConfigurationImpl.getConnectionFactory(
JDBCConfigurationImpl.java:683)

<snip>

Caused by: org.apache.commons.dbcp.SQLNestedException: Cannot create JDBC
driver of class 'com.mysql.jdbc.Driver' for connect URL
'jdbc:mysql:localhost:3306/schematest'
    at org.apache.commons.dbcp.BasicDataSource.createDataSource(
BasicDataSource.java:780)
    at org.apache.commons.dbcp.BasicDataSource.getConnection(
BasicDataSource.java:540)
    at org.apache.openjpa.lib.jdbc.DelegatingDataSource.getConnection(
DelegatingDataSource.java:112)
    at org.apache.openjpa.lib.jdbc.DecoratingDataSource.getConnection(
DecoratingDataSource.java:93)
    at org.apache.openjpa.jdbc.schema.DataSourceFactory.installDBDictionary(
DataSourceFactory.java:229)
    ... 27 more
Caused by: java.sql.SQLException: No suitable driver
    at java.sql.DriverManager.getDriver(DriverManager.java:243)
    at org.apache.commons.dbcp.BasicDataSource.createDataSource(
BasicDataSource.java:773)

Could you try adding in the // and see if that resolves the problem?

-Mike


On Dec 20, 2007 12:26 PM, Christian Eugster <[EMAIL PROTECTED]>
wrote:

> Hi, I am new to openjpa and did not find any answer to my problem googling
> and searching the mail-archives:
>
> I try to run a program using openjpa to connect to a mysql server. The
> configuration file is as follows (omitting the comments):
>
> **********************************
> PERSISTENCE.XML
> **********************************
> <?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 C:\Projekte\Eclipse
> 3.x\ColibriTS\ch.eugster.colibri.core\META-INF\persistence_1_0.xsd">
>    <persistence-unit name="colibri" transaction-type="RESOURCE_LOCAL">
>        <provider>
>            org.apache.openjpa.persistence.PersistenceProviderImpl
>        </provider>
>         <mapping-file>orm.xml</mapping-file>
> <!--          <class>ch.eugster.colibri.core.db.tables.User</class> -->
>        <properties>
>                <property
>                name="openjpa.ConnectionURL"
>                value="jdbc:mysql:localhost:3306/colibrits"/>
>            <property
>                name="openjpa.ConnectionDriverName"
>                value="com.mysql.jdbc.Driver"/>
>            <property
>                name="openjpa.ConnectionUserName"
>                value="colibri"/>
>            <property
>                name="openjpa.ConnectionPassword"
>                value="colibri"/>
>            <property
>                name="dialect"
>                value="org.apache.openjpa.jdbc.sql.MySQLDictionary"/>
>       </properties>
>    </persistence-unit>
> </persistence>
>
> As you can see I tried with <mapping-file> and <class> tags, both did not
> work. The mappingfile looks like this:
>
> **********************************
> ORM.XML
> **********************************
> <?xml version="1.0" encoding="UTF-8"?>
> <orm:entity-mappings version="1.0" xmlns:orm="
> http://java.sun.com/xml/ns/persistence/orm"; xmlns:xsi="
> http://www.w3.org/2001/XMLSchema-instance"; xsi:schemaLocation="
> http://java.sun.com/xml/ns/persistence/orm orm_1_0.xsd ">
>        <orm:mapped-superclass
>                class="ch.eugster.colibri.core.db.tables.BasicTable"
> access="PROPERTY"
>                metadata-complete="true">
>                <orm:attributes>
>                        <orm:id name="id">
>                                <orm:generated-value strategy="AUTO"
> /></orm:id>
>                        <orm:basic name="deleted"></orm:basic>
>                        <orm:version name="version"></orm:version>
>                        <orm:transient name="dirty" ></orm:transient>
>                        <orm:transient name="listeners" /></orm:attributes>
>        </orm:mapped-superclass>
>        <orm:entity class="ch.eugster.colibri.core.db.tables.User"
>                access="PROPERTY" metadata-complete="true" name="user">
>                <orm:attribute-override name="id">
>                        <orm:column name="user_id" nullable="false"
> unique="true"></orm:column>
>                </orm:attribute-override>
>                <orm:attribute-override name="version">
>                        <orm:column name="user_version"></orm:column>
>                </orm:attribute-override>
>                <orm:attribute-override name="deleted">
>                        <orm:column name="user_deleted"></orm:column>
>                </orm:attribute-override>
>                <orm:attributes>
>                        <orm:basic name="username" fetch="LAZY"
> optional="false">
>                                <orm:column name="user_username"
> length="100"
>
>  unique="true"></orm:column></orm:basic>
>                        <orm:basic name="password" fetch="LAZY"
> optional="true">
>                                <orm:column name="user_password"
> length="100"></orm:column></orm:basic>
>                        <orm:basic name="posLogin" fetch="LAZY"
> optional="false">
>                                <orm:column name="user_pos_login"
> length="100"
>
>  unique="true"></orm:column></orm:basic>
>                        <orm:basic name="status" fetch="LAZY"
> optional="false">
>                                <orm:column
> name="user_status"></orm:column></orm:basic></orm:attributes>
>        </orm:entity>
> </orm:entity-mappings>
>
> The classfiles look like these:
>
> **********************************
> BASICTABLE.JAVA
> **********************************
> package ch.eugster.colibri.core.db.tables;
>
> import java.io.Serializable;
> import java.util.ArrayList;
>
> import javax.persistence.Basic;
> import javax.persistence.Id;
> import javax.persistence.MappedSuperclass;
> import javax.persistence.Transient;
> import javax.persistence.Version;
>
> import ch.eugster.colibri.core.db.events.Event;
> import ch.eugster.colibri.core.db.events.IEvent;
> import ch.eugster.colibri.core.db.events.IListener;
>
> @MappedSuperclass
> public abstract class BasicTable implements Serializable, Cloneable {
>
>        @Id
>        private Long id = null;
>
>        @Version
>        protected int version = 0;
>
>        @Basic
>        protected boolean deleted = false;
>
>        @Transient
>        protected transient boolean dirty = false;
>
>        @Transient
>        protected transient ArrayList<IListener> listeners = new
> ArrayList<IListener>();
>
>        protected static Long ZERO_ID = new Long(0l);
>
>        public BasicTable() {
>
>        }
>
>        @Id
>        public Long getId() {
>                return id;
>        }
>
>        public void setId(Long id) {
>                this.id = id;
>        }
>
>        @Basic
>        public boolean isDeleted() {
>                return deleted;
>        }
>
>        public void setDeleted(boolean deleted) {
>                this.deleted = deleted;
>        }
>
>        @Version
>        public int getVersion() {
>                return version;
>        }
>
>        public void setVersion(int version) {
>                this.version = version;
>        }
>
> //      public void store() {
> //              //TODO Connection.getDefault().store(this);
> //              setDirty(false);
> //              fireEvent(new Event(IEvent.Type.STORE_EVENT, this));
> //      }
>
>        public void insert() {
>                //TODO Connection.getDefault().insert(this);
>                setDirty(false);
>                fireEvent(new Event(IEvent.Type.INSERT_EVENT, this));
>        }
>
>        public void update() {
>                //TODO Connection.getDefault().update(this);
>                setDirty(false);
>                fireEvent(new Event(IEvent.Type.UPDATE_EVENT, this));
>        }
>
>        public void delete() {
>                if (isDeleteable())
>                {
>                        setDeleted(true);
>                        //TODO Connection.getDefault().update(this);
>                        setDirty(false);
>                        fireEvent(new Event(IEvent.Type.DELETE_EVENT,
> this));
>                }
>        }
>
>        public void remove(BasicTable object) {
>                if (isRemoveable())
>                {
>                        //TODO Connection.getDefault().delete(object);
>                }
>        }
>
>        public boolean isDeleteable()
>        {
>                return true;
>        }
>
>        public boolean isRemoveable()
>        {
>                return false;
>        }
>
>        protected String stringValueOf(String value) {
>                return value == null ? "" : value;
>        }
>
>        public boolean needsInsert() {
>                return (this.getId() == null);
>        }
>
>        public boolean needsUpdate() {
>                return isDirty();
>        }
>
>        public boolean isDirty() {
>                return dirty;
>        }
>
>        public void setDirty(boolean dirty) {
>                this.dirty = dirty;
>        }
>
>        public void fireEvent(Event e) {
>                IListener[] l = listeners.toArray(new IListener[0]);
>                for (int i = 0; i < l.length; i++) {
>                        l[i].handleEvent(e);
>                }
>        }
>
>        public void addListener(IListener listener) {
>                if (!listeners.contains(listener)) {
>                        listeners.add(listener);
>                }
>        }
>
>        public void removeListener(IListener listener) {
>                if (listeners.contains(listener)) {
>                        listeners.remove(listener);
>                }
>        }
>
>        public void removeListeners() {
>                listeners.clear();
>        }
>
>        protected ArrayList<IListener> getListeners() {
>                return listeners;
>        }
> }
>
> And:
>
> **********************************
> USER.JAVA
> **********************************
> /*
>  * Created on 13.03.2003
>  *
>  * To change this generated comment go to
>  * Window>Preferences>Java>Code Generation>Code Template
>  */
> package ch.eugster.colibri.core.db.tables;
>
> import javax.persistence.Basic;
>
>
> /**
>  * @author administrator
>  */
> public class User extends BasicTable {
>
>        public static final long serialVersionUID = 100000001l;
>
>        @Basic
>        private String username = null; //$NON-NLS-1$
>        @Basic
>        private String password = null; //$NON-NLS-1$
>        @Basic
>        private Long posLogin = null;
>        @Basic
>        private State status = User.State.WORKER;
>
>        public User() {}
>
>        @Basic
>        public String getUsername()
>        {
>                return username;
>        }
>
>        public void setUsername(String username)
>        {
>                this.username = username;
>        }
>
>        @Basic
>        public String getPassword()
>        {
>                return password;
>        }
>
>        public void setPassword(String password)
>        {
>                this.password = password;
>        }
>
>        @Basic
>        public Long getPosLogin()
>        {
>                return posLogin;
>        }
>
>        public void setPosLogin(Long posLogin)
>        {
>                this.posLogin = posLogin;
>        }
>
>        @Basic
>        public State getStatus()
>        {
>                return status;
>        }
>
>        public void setStatus(State status)
>        {
>                this.status = status;
>        }
>
>        public static enum State
>        {
>                WORKER(1),
>                MANAGER(2),
>                ADMINISTRATOR(3);
>
>                protected int status = 0;
>
>                private State(int status)
>                {
>                        this.status = status;
>                }
>
>                public String toText() {
>                        switch (this) {
>                        case WORKER: return "Angestellte/r";
>                        case MANAGER: return "Manager";
>                        case ADMINISTRATOR: return "Administrator";
>                        default: return "Unbekannt";
>                        }
>                }
>        }
> }
>
>
>
> I get the following Errormessage:
>
> **********************************
> ERRORMESSAGE
> **********************************
> 78  colibri  INFO   [main] openjpa.Runtime - Starting OpenJPA 1.0.1
> 281  colibri  INFO   [main] openjpa.jdbc.JDBC - Using dictionary class "
> org.apache.openjpa.jdbc.sql.MySQLDictionary".
> Exception in thread "main" <openjpa-1.0.1-r420667:592145 nonfatal general
> error> org.apache.openjpa.persistence.PersistenceException: There were
> errors initializing your configuration: <openjpa-1.0.1-r420667:592145
> fatal store error> org.apache.openjpa.util.StoreException: null
>        at
> org.apache.openjpa.jdbc.schema.DataSourceFactory.installDBDictionary(
> DataSourceFactory.java:234)
>        at
> org.apache.openjpa.jdbc.conf.JDBCConfigurationImpl.getConnectionFactory(
> JDBCConfigurationImpl.java:709)
>        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
>        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
>        at java.lang.reflect.Method.invoke(Unknown Source)
>        at org.apache.openjpa.lib.conf.ConfigurationImpl.instantiateAll(
> ConfigurationImpl.java:289)
>        at org.apache.openjpa.conf.OpenJPAConfigurationImpl.instantiateAll(
> OpenJPAConfigurationImpl.java:1463)
>        at org.apache.openjpa.kernel.AbstractBrokerFactory.makeReadOnly(
> AbstractBrokerFactory.java:638)
>        at org.apache.openjpa.kernel.AbstractBrokerFactory.newBroker(
> AbstractBrokerFactory.java:169)
>        at org.apache.openjpa.kernel.DelegatingBrokerFactory.newBroker(
> DelegatingBrokerFactory.java:142)
>        at
> org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager
> (EntityManagerFactoryImpl.java:192)
>        at
> org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager
> (EntityManagerFactoryImpl.java:145)
>        at
> org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager
> (EntityManagerFactoryImpl.java:56)
>        at ch.eugster.colibri.core.db.connections.DataSources.open(
> DataSources.java:22)
>        at ch.eugster.colibri.core.Main.main(Main.java:35)
> Caused by: java.lang.NullPointerException
>        at org.apache.openjpa.lib.jdbc.DelegatingConnection.getAutoCommit(
> DelegatingConnection.java:200)
>        at org.apache.openjpa.lib.jdbc.DelegatingConnection.getAutoCommit(
> DelegatingConnection.java:200)
>        at
> org.apache.openjpa.lib.jdbc.ConfiguringConnectionDecorator$ConfiguringConnection
> .<init>(ConfiguringConnectionDecorator.java:109)
>        at
> org.apache.openjpa.lib.jdbc.ConfiguringConnectionDecorator.decorate(
> ConfiguringConnectionDecorator.java:93)
>        at org.apache.openjpa.lib.jdbc.DecoratingDataSource.decorate(
> DecoratingDataSource.java:100)
>        at org.apache.openjpa.lib.jdbc.DecoratingDataSource.getConnection(
> DecoratingDataSource.java:94)
>        at
> org.apache.openjpa.jdbc.schema.DataSourceFactory.installDBDictionary(
> DataSourceFactory.java:226)
>        ... 15 more
>
>        at org.apache.openjpa.kernel.AbstractBrokerFactory.newBroker(
> AbstractBrokerFactory.java:205)
>        at org.apache.openjpa.kernel.DelegatingBrokerFactory.newBroker(
> DelegatingBrokerFactory.java:142)
>        at
> org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager
> (EntityManagerFactoryImpl.java:192)
>        at
> org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager
> (EntityManagerFactoryImpl.java:145)
>        at
> org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager
> (EntityManagerFactoryImpl.java:56)
>        at ch.eugster.colibri.core.db.connections.DataSources.open(
> DataSources.java:22)
>        at ch.eugster.colibri.core.Main.main(Main.java:35)
> Caused by: java.lang.RuntimeException: There were errors initializing your
> configuration: <openjpa-1.0.1-r420667:592145 fatal store error>
> org.apache.openjpa.util.StoreException: null
>        at
> org.apache.openjpa.jdbc.schema.DataSourceFactory.installDBDictionary(
> DataSourceFactory.java:234)
>        at
> org.apache.openjpa.jdbc.conf.JDBCConfigurationImpl.getConnectionFactory(
> JDBCConfigurationImpl.java:709)
>        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
>        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
>        at java.lang.reflect.Method.invoke(Unknown Source)
>        at org.apache.openjpa.lib.conf.ConfigurationImpl.instantiateAll(
> ConfigurationImpl.java:289)
>        at org.apache.openjpa.conf.OpenJPAConfigurationImpl.instantiateAll(
> OpenJPAConfigurationImpl.java:1463)
>        at org.apache.openjpa.kernel.AbstractBrokerFactory.makeReadOnly(
> AbstractBrokerFactory.java:638)
>        at org.apache.openjpa.kernel.AbstractBrokerFactory.newBroker(
> AbstractBrokerFactory.java:169)
>        at org.apache.openjpa.kernel.DelegatingBrokerFactory.newBroker(
> DelegatingBrokerFactory.java:142)
>        at
> org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager
> (EntityManagerFactoryImpl.java:192)
>        at
> org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager
> (EntityManagerFactoryImpl.java:145)
>        at
> org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager
> (EntityManagerFactoryImpl.java:56)
>        at ch.eugster.colibri.core.db.connections.DataSources.open(
> DataSources.java:22)
>        at ch.eugster.colibri.core.Main.main(Main.java:35)
> Caused by: java.lang.NullPointerException
>        at org.apache.openjpa.lib.jdbc.DelegatingConnection.getAutoCommit(
> DelegatingConnection.java:200)
>        at org.apache.openjpa.lib.jdbc.DelegatingConnection.getAutoCommit(
> DelegatingConnection.java:200)
>        at
> org.apache.openjpa.lib.jdbc.ConfiguringConnectionDecorator$ConfiguringConnection
> .<init>(ConfiguringConnectionDecorator.java:109)
>        at
> org.apache.openjpa.lib.jdbc.ConfiguringConnectionDecorator.decorate(
> ConfiguringConnectionDecorator.java:93)
>        at org.apache.openjpa.lib.jdbc.DecoratingDataSource.decorate(
> DecoratingDataSource.java:100)
>        at org.apache.openjpa.lib.jdbc.DecoratingDataSource.getConnection(
> DecoratingDataSource.java:94)
>        at
> org.apache.openjpa.jdbc.schema.DataSourceFactory.installDBDictionary(
> DataSourceFactory.java:226)
>        ... 15 more
>
>        at org.apache.openjpa.lib.conf.ConfigurationImpl.instantiateAll(
> ConfigurationImpl.java:303)
>        at org.apache.openjpa.conf.OpenJPAConfigurationImpl.instantiateAll(
> OpenJPAConfigurationImpl.java:1463)
>        at org.apache.openjpa.kernel.AbstractBrokerFactory.makeReadOnly(
> AbstractBrokerFactory.java:638)
>        at org.apache.openjpa.kernel.AbstractBrokerFactory.newBroker(
> AbstractBrokerFactory.java:169)
>        ... 6 more
>
>
> **********************************
>
> Does anyone have a hint what I am doing wrong?
>
> Thanks in advance!
>
> Christian
> --
> ****************************
> Christian Eugster
> Grissian Widum 14
> I-39010 Tisens
> --------------------------------------
> Handy Schweiz: 0041 79 594 85 45
> Handy Italia: 0039 333 888 77 64
> Email: [EMAIL PROTECTED]
>
>
> Der GMX SmartSurfer hilft bis zu 70% Ihrer Onlinekosten zu sparen!
> Ideal für Modem und ISDN: http://www.gmx.net/de/go/smartsurfer
>

Reply via email to