Hi Sebastian,From _Core Java Data Objects_ page 51:
Does your class have a public default constructor?
"There is one requirement, however; JDO requires that a persistence-capable class have a no-arguments constructor. This constructor does not need to be declared public it just needs to be accessible to the class itself and to any potential subclasses. If thee are no sublcasses it can be declared as private."
Does OJB place a further restriction that it must be public?
-Gus
-----Original Message----- From: Sebastian Muench [mailto:[EMAIL PROTECTED] Sent: Wednesday, December 17, 2003 1:42 AM To: OJB Users List; [EMAIL PROTECTED] Subject: R: JDO - Unable to build object instance
Oh, the file I mentioned in my last mail hasn't been attached. Here is the screenshot:
[JDO] DEBUG: OjbStoreConnector.begin: connectionReadyForRelease=false
[org.apache.ojb.broker.accesslayer.RsIterator] ERROR: Error while iterate
ResultSet for query org.apache.ojb.broker.accesslayer.RsQueryObject[query:
Query from class JDOTest.Person where null, class descriptor:
JDOTest.Person]
Unable to build object instance (MAYBE you don't have a constructor
available):class JDOTest.Person
org.apache.ojb.broker.PersistenceBrokerException: Unable to build object
instance (MAYBE you don't have a constructor available):class JDOTest.Person
at
org.apache.ojb.broker.accesslayer.RowReaderDefaultImpl.buildWi
thReflection(R
owReaderDefaultImpl.java:239)
at
org.apache.ojb.broker.accesslayer.RowReaderDefaultImpl.readObj
ectFrom(RowRea
derDefaultImpl.java:115)
at
org.apache.ojb.broker.accesslayer.RsIterator.getObjectFromResu
ltSet(RsIterat
or.java:463)
at
org.apache.ojb.broker.accesslayer.RsIterator.next(RsIterator.java:284)
at
org.apache.ojb.broker.core.QueryReferenceBroker.getCollectionB
yQuery(QueryRe
ferenceBroker.java:147)
at
org.apache.ojb.broker.core.QueryReferenceBroker.getCollectionB
yQuery(QueryRe
ferenceBroker.java:244)
at
org.apache.ojb.broker.core.QueryReferenceBroker.getCollectionB
yQuery(QueryRe
ferenceBroker.java:263)
at
org.apache.ojb.broker.core.PersistenceBrokerImpl.getCollection
ByQuery(Persis
tenceBrokerImpl.java:997)
at
org.apache.ojb.broker.core.DelegatingPersistenceBroker.getColl
ectionByQuery(
DelegatingPersistenceBroker.java:322)
at
org.apache.ojb.broker.core.DelegatingPersistenceBroker.getColl
ectionByQuery(
DelegatingPersistenceBroker.java:322)
at org.apache.ojb.jdori.sql.OjbExtent.<init>(OjbExtent.java:98)
at
org.apache.ojb.jdori.sql.OjbStoreManager.getExtent(OjbStoreMan
ager.java:251)
at com.sun.jdori.common.PersistenceManagerImpl.getExtent(Unknown
Source)
at com.sun.jdori.common.query.QueryImpl.checkCandidates(Unknown
Source)
at com.sun.jdori.common.query.QueryImpl.execute(Unknown Source)
at JDOTest.TestJdo.run(TestJdo.java:52)
at JDOTest.TestJdo.main(TestJdo.java:39)
Caused by:
org.apache.ojb.broker.metadata.ClassNotPersistenceCapableExcep
tion: (Could
not instantiate JDOTest.Person: Class
org.apache.ojb.broker.util.ConstructorHelper can not access a member of
class JDOTest.Person with modifiers "public")
at
org.apache.ojb.broker.util.ConstructorHelper.instantiate(Const
ructorHelper.j
ava:162)
at
org.apache.ojb.broker.accesslayer.RowReaderDefaultImpl.buildWi
thReflection(R
owReaderDefaultImpl.java:235)
... 16 more
Caused by: java.lang.IllegalAccessException: Class
org.apache.ojb.broker.util.ConstructorHelper can not access a member of
class JDOTest.Person with modifiers "public"
at sun.reflect.Reflection.ensureMemberAccess(Reflection.java:57)
at java.lang.reflect.Constructor.newInstance(Constructor.java:268)
at
org.apache.ojb.broker.util.ConstructorHelper.instantiate(Const
ructorHelper.j
ava:158)
... 17 more
org.apache.ojb.broker.PersistenceBrokerException:
java.util.NoSuchElementException: Could not obtain next object: Unable to
build object instance (MAYBE you
don't have a constructor available):class JDOTest.Person
at
org.apache.ojb.broker.core.QueryReferenceBroker.getCollectionB
yQuery(QueryRe
ferenceBroker.java:251)
at
org.apache.ojb.broker.core.QueryReferenceBroker.getCollectionB
yQuery(QueryRe
ferenceBroker.java:263)
at
org.apache.ojb.broker.core.PersistenceBrokerImpl.getCollection
ByQuery(Persis
tenceBrokerImpl.java:997)
at
org.apache.ojb.broker.core.DelegatingPersistenceBroker.getColl
ectionByQuery(
DelegatingPersistenceBroker.java:322)
at
org.apache.ojb.broker.core.DelegatingPersistenceBroker.getColl
ectionByQuery(
DelegatingPersistenceBroker.java:322)
at org.apache.ojb.jdori.sql.OjbExtent.<init>(OjbExtent.java:98)
at
org.apache.ojb.jdori.sql.OjbStoreManager.getExtent(OjbStoreMan
ager.java:251)
at com.sun.jdori.common.PersistenceManagerImpl.getExtent(Unknown
Source)
at com.sun.jdori.common.query.QueryImpl.checkCandidates(Unknown
Source)
at com.sun.jdori.common.query.QueryImpl.execute(Unknown Source)
at JDOTest.TestJdo.run(TestJdo.java:52)
at JDOTest.TestJdo.main(TestJdo.java:39)
Caused by: java.util.NoSuchElementException: Could not obtain next object:
Unable to build object instance (MAYBE you don't have a constructor
available):class JDOTest.Person
at
org.apache.ojb.broker.accesslayer.RsIterator.next(RsIterator.java:310)
at
org.apache.ojb.broker.core.QueryReferenceBroker.getCollectionB
yQuery(QueryRe
ferenceBroker.java:147)
at
org.apache.ojb.broker.core.QueryReferenceBroker.getCollectionB
yQuery(QueryRe
ferenceBroker.java:244)
... 11 more
Exception in thread "main" javax.jdo.JDOUserException: Cannot close
PersistenceManager while transaction is still active.
at com.sun.jdori.common.PersistenceManagerImpl.close(Unknown Source)
at
com.sun.jdori.common.PersistenceManagerImpl.popCurrentWrapper(Unknown
Source)
at com.sun.jdori.common.PersistenceManagerWrapper.close(Unknown
Source)
at JDOTest.TestJdo.run(TestJdo.java:69)
at JDOTest.TestJdo.main(TestJdo.java:39)
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
