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