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
