You are viewing a plain text version of this content. The canonical link for it is here.
Posted to ojb-user@db.apache.org by Dmitry Litvintsev <li...@fnal.gov> on 2006/04/19 01:43:14 UTC
newbie problems
Hi,
I am developing a java application and I am considering OJB technology to
store objects' states seamlessly in the PostgreSQL database.
In short I am failing to get tutorial5 up and running. I followed
instructions on this link:
http://db.apache.org/ojb/docu/tutorials/jdo-tutorial.html
My actions:
1) downloaded ojb-blank.jar
2) downloaded tutorial5-src.jar
3) downloaded db-ojb-1.0.4.jar
4) downloaded jdo.jar,jdori-enhancer.jar,jdori.jar (jdo 1.0.1 RI)
5) downloaded PostgreSQL drivers pg74.216.jdbc3.jar postgresql-8.1-405.jdbc3.jar
my top directory is "ojb-blank"
I put *jar files into lib (ojb-blank/lib)
I put tutorial5 sources to (ojb_blank/src/java/org/apache/ojb/tutorial5)
I modified buid.properties, so it looks like this:
jcdAlias=default
databaseName=ojb
databaseUser=postgres
databasePassword=
dbmsName=PostgreSQL
jdbcLevel=3.0
jdbcRuntimeDriver=org.postgresql.Driver
urlProtocol=jdbc
urlSubprotocol=postgresql
urlDbalias=//localhost/${databaseName}
torque.database=postgresql
torque.database.createUrl=${urlProtocol}:${urlSubprotocol}:${urlDbalias}
jar.name=my-project.jar
source.dir=src
source.java.dir=${source.dir}/java
source.resource.dir=${source.dir}/resources
source.test.dir=${source.dir}/test
source.schema.dir=${source.dir}/schema
build.dir=build
lib.dir=lib
target.dir=target
I do not recall changing build.xml.
1) DB setup
ant build setup-db
runs w/ errors, but it creates *.sql files which I run byu hand and next
time around
ant build setup-db
runs w/o errors. So I consider it is a success:
$ psql ojb
Welcome to psql 8.0.3, the PostgreSQL interactive terminal.
Type: \copyright for distribution terms
\h for help with SQL commands
\? for help with psql commands
\g or terminate with semicolon to execute query
\q to quit
ojb=# \d
List of relations
Schema | Name | Type | Owner
--------+-------------------+-------+----------
public | ojb_dlist | table | postgres
public | ojb_dlist_entries | table | postgres
public | ojb_dmap | table | postgres
public | ojb_dmap_entries | table | postgres
public | ojb_dset | table | postgres
public | ojb_dset_entries | table | postgres
public | ojb_hl_seq | table | postgres
public | ojb_nrm | table | postgres
public | product | table | postgres
(9 rows)
2) ant build
$ ant build
Buildfile: build.xml
compile:
[mkdir] Created dir: /data/postgres/ojb/ojb-blank/build
[mkdir] Created dir: /data/postgres/ojb/ojb-blank/build/classes
[javac] Compiling 9 source files to /data/postgres/ojb/ojb-blank/build/classes
xdoclet:
[ojbdoclet] 2006-04-18 18:33:08,102 [main] INFO xdoclet.XDocletMain.start - Running <ojbrepository/>
[ojbdoclet] Generating ojb repository descriptor (build/repository_user.xml)
[ojbdoclet] Type org.apache.ojb.tutorial5.Product
[ojbdoclet] Processed 1 types
[ojbdoclet] Processed 1 types
[ojbdoclet] 2006-04-18 18:33:08,493 [main] INFO xdoclet.XDocletMain.start - Running <torqueschema/>
[ojbdoclet] Generating torque schema (build/database/project-schema.xml)
[ojbdoclet] Processed 1 types
build:
[copy] Copying 7 files to /data/postgres/ojb/ojb-blank/build
[mkdir] Created dir: /data/postgres/ojb/ojb-blank/build/lib
[copy] Copying 41 files to /data/postgres/ojb/ojb-blank/build/lib
build_if_with_mainclass:
[copy] Copying 2 files to /data/postgres/ojb/ojb-blank/build
BUILD SUCCESSFUL
Total time: 3 seconds
so I am encouraged , I proceed to the next step:
3) ant enhance-jdori
$ ant enhance-jdori
Buildfile: build.xml
compile:
xdoclet:
[ojbdoclet] 2006-04-18 18:34:35,546 [main] INFO xdoclet.XDocletMain.start - Running <ojbrepository/>
[ojbdoclet] 2006-04-18 18:34:36,128 [main] INFO xdoclet.XDocletMain.start - Running <torqueschema/>
build:
build_if_with_mainclass:
enhance-jdori:
[java] Enhancer: options:
[java] verbose = true
[java] quiet = false
[java] forceWrite = true
[java] noWrite = false
[java] sourcePath = null
[java] destinationDirectory = build/classes
[java] propertiesFileName = null
[java] doTiming = false
[java] classNames = {
[java] }
[java] jdoFileNames = {
[java] src/java/org/apache/ojb/tutorial5/Product.jdo
[java] }
[java] classFileNames = {
[java] build/classes/org/apache/ojb/tutorial5/Product.class
[java] }
[java] zipFileNames = {
[java] }
[java] dumpClass = false
[java] noAugment = false
[java] noAnnotate = false
[java] JDO ENHANCER: using file: file:/data/postgres/ojb/ojb-blank/build/classes/org/apache/ojb/tutorial5/Product.class
[java] Class Locator: using class files: {
[java] build/classes/org/apache/ojb/tutorial5/Product.class
[java] }
[java] JDO ENHANCER: using file: file:/data/postgres/ojb/ojb-blank/src/java/org/apache/ojb/tutorial5/Product.jdo
[java]
---------------------------------------------------------------------------
[java] JDO ENHANCER: Enhancer: enhancing classfile ...
[java] JDO ENHANCER: scanning class org.apache.ojb.tutorial5.Product
[java] JDO ENHANCER: not found resource: META-INF/package.jdo
[java] JDO ENHANCER: not found resource: WEB-INF/package.jdo
[java] JDO ENHANCER: not found resource: package.jdo
[java] JDO ENHANCER: not found resource: org/package.jdo
[java] JDO ENHANCER: not found resource: org/apache/package.jdo
[java] JDO ENHANCER: not found resource: org/apache/ojb/package.jdo
[java] JDO ENHANCER: not found resource: org/apache/ojb/tutorial5/package.jdo
[java] JDO ENHANCER: found resource: org/apache/ojb/tutorial5/Product.jdo
[java] JDO ENHANCER: has default constructor.
[java] JDO ENHANCER: has not static initializer.
[java] JDO ENHANCER: has not clone method.
[java] JDO ENHANCER: has not writeObject method.
[java] JDO ENHANCER: has not writeReplace method.
[java] JDO ENHANCER: has not readObject method.
[java] JDO ENHANCER: has the specific JDO fields: false.
[java] JDO ENHANCER: has the specific JDO methods: false.
[java] JDO ENHANCER: has the specific JDO fields and methods: false.
[java] JDO ENHANCER: has the instance-callback JDO methods: false.
[java] JDO ENHANCER: has the instance-callback JDO methods: false.
[java] JDO ENHANCER: implements the JDO PersistenceCapable interface: false.
[java] JDO ENHANCER: has the generic JDO fields: false.
[java] JDO ENHANCER: has the generic JDO methods: false.
[java] JDO ENHANCER: has the generic JDO fields and methods: false.
[java] JDO ENHANCER: augmenting class org.apache.ojb.tutorial5.Product
[java] JDO ENHANCER: adding: javax.jdo.spi.StateManager jdoStateManager
[java] JDO ENHANCER: adding: byte jdoFlags
[java] JDO ENHANCER: adding: void jdoReplaceFlags()
[java] JDO ENHANCER: adding: boolean jdoIsPersistent()
[java] JDO ENHANCER: adding: boolean jdoIsTransactional()
[java] JDO ENHANCER: adding: boolean jdoIsNew()
[java] JDO ENHANCER: adding: boolean jdoIsDeleted()
[java] JDO ENHANCER: adding: boolean jdoIsDirty()
[java] JDO ENHANCER: adding: void jdoMakeDirty(java.lang.String)
[java] JDO ENHANCER: adding: void jdoPreSerialize()
[java] JDO ENHANCER: adding: javax.jdo.PersistenceManager jdoGetPersistenceManager()
[java] JDO ENHANCER: adding: java.lang.Object jdoGetObjectId()
[java] JDO ENHANCER: adding: java.lang.Object jdoGetTransactionalObjectId()
[java] JDO ENHANCER: adding: void jdoReplaceStateManager(javax.jdo.spi.StateManager)
[java] JDO ENHANCER: adding: void jdoProvideFields(int[])
[java] JDO ENHANCER: adding: void jdoReplaceFields(int[])
[java] JDO ENHANCER: adding: java.lang.Class sunjdo$classForName$(java.lang.String)
[java] JDO ENHANCER: adding: implements javax.jdo.spi.PersistenceCapable
[java] JDO ENHANCER: adding: int jdoInheritedFieldCount
[java] JDO ENHANCER: adding: java.lang.String[] jdoFieldNames
[java] JDO ENHANCER: adding: java.lang.Class[] jdoFieldTypes
[java] JDO ENHANCER: adding: byte[] jdoFieldFlags
[java] JDO ENHANCER: adding: java.lang.Class jdoPersistenceCapableSuperclass
[java] JDO ENHANCER: adding: int jdoGetManagedFieldCount()
[java] JDO ENHANCER: adding: void <clinit>()
[java] JDO ENHANCER: adding: javax.jdo.spi.PersistenceCapable jdoNewInstance(javax.jdo.spi.StateManager)
[java] JDO ENHANCER: adding: javax.jdo.spi.PersistenceCapable jdoNewInstance(javax.jdo.spi.StateManager, java.lang.Object)
[java] JDO ENHANCER: adding: void jdoProvideField(int)
[java] JDO ENHANCER: adding: void jdoReplaceField(int)
[java] JDO ENHANCER: adding: void jdoCopyField(org.apache.ojb.tutorial5.Product, int)
[java] JDO ENHANCER: adding: void jdoCopyFields(java.lang.Object, int[])
[java] JDO ENHANCER: adding: java.lang.Object jdoNewObjectIdInstance()
[java] JDO ENHANCER: adding: java.lang.Object jdoNewObjectIdInstance(java.lang.String)
[java] JDO ENHANCER: adding: void jdoCopyKeyFieldsToObjectId(java.lang.Object)
[java] JDO ENHANCER: adding: void jdoCopyKeyFieldsFromObjectId(java.lang.Object)
[java] JDO ENHANCER: adding: void jdoCopyKeyFieldsToObjectId(javax.jdo.spi.PersistenceCapable$ObjectIdFieldSupplier, java.lang.Object)
[java] JDO ENHANCER: adding: void jdoCopyKeyFieldsFromObjectId(javax.jdo.spi.PersistenceCapable$ObjectIdFieldConsumer, java.lang.Object)
[java] JDO ENHANCER: adding: java.lang.Integer jdoGetid(org.apache.ojb.tutorial5.Product)
[java] JDO ENHANCER: adding: void jdoSetid(org.apache.ojb.tutorial5.Product, java.lang.Integer)
[java] JDO ENHANCER: adding: java.lang.String jdoGetname(org.apache.ojb.tutorial5.Product)
[java] JDO ENHANCER: adding: void jdoSetname(org.apache.ojb.tutorial5.Product, java.lang.String)
[java] JDO ENHANCER: adding: double jdoGetprice(org.apache.ojb.tutorial5.Product)
[java] JDO ENHANCER: adding: void jdoSetprice(org.apache.ojb.tutorial5.Product, double)
[java] JDO ENHANCER: adding: int jdoGetstock(org.apache.ojb.tutorial5.Product)
[java] JDO ENHANCER: adding: void jdoSetstock(org.apache.ojb.tutorial5.Product, int)
[java] JDO ENHANCER: adding: void writeObject(java.io.ObjectOutputStream)
[java] JDO ENHANCER: annotating class org.apache.ojb.tutorial5.Product
[java] JDO ENHANCER: annotating: org.apache.ojb.tutorial5.Product.getId()
[java] JDO ENHANCER: annotating: org.apache.ojb.tutorial5.Product.setName(java.lang.String)
[java] JDO ENHANCER: annotating: org.apache.ojb.tutorial5.Product.<init>()
[java] JDO ENHANCER: annotating: org.apache.ojb.tutorial5.Product.getPrice()
[java] JDO ENHANCER: annotating: org.apache.ojb.tutorial5.Product.setPrice(double)
[java] JDO ENHANCER: annotating: org.apache.ojb.tutorial5.Product.setStock(int)
[java] JDO ENHANCER: annotating: org.apache.ojb.tutorial5.Product.toString()
[java] JDO ENHANCER: annotating: org.apache.ojb.tutorial5.Product.getStock()
[java] JDO ENHANCER: annotating: org.apache.ojb.tutorial5.Product.getName()
[java] JDO ENHANCER: annotating: org.apache.ojb.tutorial5.Product.setId(int)
[java] JDO ENHANCER: writing enhanced class org.apache.ojb.tutorial5.Product to output stream
[java] JDO ENHANCER: Enhancer: classfile enhanced successfully.
[java] done.
BUILD SUCCESSFUL
Total time: 6 seconds
So I am extatic. I do:
4) cd build
chmod +x run.sh
./run.sh
bash: ./run.sh: Permission denied
[litvinse@cduqbar build]$ chmod +x run.sh
[litvinse@cduqbar build]$ ./run.sh
_ _
__ (_)| |_
/ _\| || _ \ ~ be persistent ~
\__/| ||___/ v. 1.0.4
/_/
Welcome to the OJB JDO RI tutorial application
[0] List all product entries
[1] Enter a new product
[2] Edit a product entry
[3] Delete a product entry
[4] Quit Application
type in number to select a use case
1
please enter a new product
enter name: casio
enter price: 10
enter available stock: 10
0 INFO [main] BOOT - -- boot log messages -->
21 DEBUG [main] JDO - OjbStoreConnector.begin: connectionReadyForRelease=false
41 DEBUG [main] BOOT - Instantiate PersistenceBrokerFactory
64 INFO [main] BOOT - Loading OJB's properties: file:/data/postgres/ojb/ojb-blank/build/OJB.properties
89 DEBUG [main] BOOT - No value for key "ObjectCacheClass", using default org.apache.ojb.broker.cache.ObjectCacheDefaultImpl.
144 DEBUG [main] BOOT - Using logger class 'class org.apache.ojb.broker.util.logging.Log4jLoggerImpl' for org.apache.ojb.broker.core.proxy.AbstractProxyFactory
144 DEBUG [main] BOOT - Initializing logger instance org.apache.ojb.broker.core.proxy.AbstractProxyFactory
180 DEBUG [main] BOOT - Using logger class 'class org.apache.ojb.broker.util.logging.Log4jLoggerImpl' for org.apache.ojb.broker.core.PersistenceBrokerFactoryBaseImpl1
180 DEBUG [main] BOOT - Initializing logger instance org.apache.ojb.broker.core.PersistenceBrokerFactoryBaseImpl
180 DEBUG [main] BOOT - Using logger class 'class org.apache.ojb.broker.util.logging.Log4jLoggerImpl' for org.apache.ojb.broker.core.PersistenceBrokerFactoryDefaultImpl
181 DEBUG [main] BOOT - Initializing logger instance org.apache.ojb.broker.core.PersistenceBrokerFactoryDefaultImpl
218 DEBUG [main] core.PersistenceBrokerFactoryDefaultImpl - PersistenceBroker pool will be setup with the following configuration org.apache.commons.pool.impl.GenericKeyedObjectPool$Config@1592174[
maxIdle=-1
maxActive=100
maxTotal=-1
maxWait=2000
whenExhaustedAction=0
testOnBorrow=false
testOnReturn=false
testWhileIdle=false
timeBetweenEvictionRunsMillis=-1
numTestsPerEvictionRun=10
minEvictableIdleTimeMillis=1000000
]
253 INFO [main] core.PersistenceBrokerFactoryDefaultImpl - Create
PersistenceBroker instance pool, pool configuration was
{whenExhaustedAction=0, maxIdle=-1, maxActive=100, maxWait=2000,
removeAbandoned=false, numTestsPerEvictionRun=10,
minEvictableIdleTimeMillis=1000000, testWhileIdle=false,
testOnReturn=false, logAbandoned=false, minIdle=0,
removeAbandonedTimeout=300, timeBetweenEvictionRunsMillis=-1,
testOnBorrow=false}
253 INFO [main] BOOT - PersistencebrokerFactory class instantiated: org.apache.ojb.broker.core.PersistenceBrokerFactoryDefaultImpl@2a4983
274 DEBUG [main] BOOT - Using logger class 'class org.apache.ojb.broker.util.logging.Log4jLoggerImpl' for org.apache.ojb.broker.metadata.MetadataManager
275 DEBUG [main] BOOT - Initializing logger instance org.apache.ojb.broker.metadata.MetadataManager
303 DEBUG [main] BOOT - Using logger class 'class org.apache.ojb.broker.util.logging.Log4jLoggerImpl' for org.apache.ojb.broker.metadata.RepositoryPersistor
303 DEBUG [main] BOOT - Initializing logger instance org.apache.ojb.broker.metadata.RepositoryPersistor
326 INFO [main] metadata.RepositoryPersistor - OJB Descriptor Repository: file:/data/postgres/ojb/ojb-blank/build/repository.xml
326 INFO [main] metadata.RepositoryPersistor - Building repository from :file:/data/postgres/ojb/ojb-blank/build/repository.xml
370 INFO [main] metadata.RepositoryPersistor - RepositoryPersistor using SAXParserFactory : org.apache.xerces.jaxp.SAXParserFactoryImpl
575 DEBUG [main] BOOT - Using logger class 'class org.apache.ojb.broker.util.logging.Log4jLoggerImpl' for org.apache.ojb.broker.metadata.DescriptorRepository
575 DEBUG [main] BOOT - Initializing logger instance org.apache.ojb.broker.metadata.DescriptorRepository
611 DEBUG [main] BOOT - Using logger class 'class org.apache.ojb.broker.util.logging.Log4jLoggerImpl' for org.apache.ojb.broker.metadata.RepositoryXmlHandler
611 DEBUG [main] BOOT - Initializing logger instance org.apache.ojb.broker.metadata.RepositoryXmlHandler
<SNIP> .... <SNIP> ot tons of debugging stuff
4240 INFO [main] accesslayer.ConnectionFactoryPooledImpl - Create new
connection
pool:org.apache.ojb.broker.metadata.JdbcConnectionDescriptor@d9660d[
jcd-alias=default
default-connection=true
dbms=PostgreSQL
jdbc-level=3.0
driver=org.postgresql.Driver
protocol=jdbc
sub-protocol=postgresql
db-alias=//localhost/ojb
user=postgres
password=*****
eager-release=false
ConnectionPoolDescriptor={whenExhaustedAction=0, maxIdle=-1,
maxActive=30, maxWait=10000, removeAbandoned=false,
numTestsPerEvictionRun=10, minEvictableIdleTimeMillis=600000,
testWhileIdle=false, testOnReturn=false, logAbandoned=false, minIdle=0,
fetchSize=0, removeAbandonedTimeout=300, timeBetweenEvictionRunsMillis=-1,
testOnBorrow=true}
batchMode=false
useAutoCommit=AUTO_COMMIT_SET_TRUE_AND_TEMPORARY_FALSE
ignoreAutoCommitExceptions=false
sequenceDescriptor=org.apache.ojb.broker.metadata.SequenceDescriptor@bb0d0d[
sequenceManagerClass=class
org.apache.ojb.broker.util.sequence.SequenceManagerHighLowImpl
Properties={autoNaming=true, seq.start=200000, grabSize=20}
]
]
4241 DEBUG [main] accesslayer.ConnectionFactoryPooledImpl - createPool was called
4270 DEBUG [main] accesslayer.ConnectionFactoryPooledImpl - makeObject called
4368 DEBUG [main] accesslayer.ConnectionFactoryAbstractImpl - Create new connection using DriverManager: org.postgresql.jdbc3.Jdbc3Connection@1fd6bea
4370 DEBUG [main] accesslayer.ConnectionManagerImpl - Request new connection from ConnectionFactory: org.postgresql.jdbc3.Jdbc3Connection@1fd6bea
4390 DEBUG [main] accesslayer.ConnectionManagerImpl - localBegin was called for con org.postgresql.jdbc3.Jdbc3Connection@1fd6bea
4391 DEBUG [main] accesslayer.ConnectionManagerImpl - Try to change autoCommit state to 'false'
Missing JDO metadata for enhanced class 'org.apache.ojb.tutorial5.Product'.
com.sun.jdori.model.ModelFatalException: Missing JDO metadata for enhanced class 'org.apache.ojb.tutorial5.Product'.
at com.sun.jdori.common.model.jdo.JDOModelImpl.lookupXMLMetadata(Unknown Source)
at com.sun.jdori.common.model.jdo.JDOModelImpl.getJDOClass(Unknown Source)
at com.sun.jdori.common.model.jdo.JDOModelImpl.getJDOClass(Unknown Source)
at com.sun.jdori.common.model.runtime.RuntimeJavaType.getJDOClass(Unknown Source)
at com.sun.jdori.common.state.StateManagerImpl.initializePC(Unknown Source)
at com.sun.jdori.common.state.StateManagerImpl.<init>(Unknown Source)
at com.sun.jdori.common.state.StateManagerFactory.newInstance(Unknown Source)
at com.sun.jdori.common.CacheManagerImpl.makePersistent(Unknown Source)
at com.sun.jdori.common.PersistenceManagerImpl.makePersistentInternal(Unknown Source)
at com.sun.jdori.common.PersistenceManagerImpl.makePersistent(Unknown Source)
at com.sun.jdori.common.PersistenceManagerWrapper.makePersistent(Unknown Source)
at org.apache.ojb.tutorial5.UCEnterNewProduct.apply(Unknown Source)
at org.apache.ojb.tutorial5.Application.run(Unknown Source)
at org.apache.ojb.tutorial5.Application.main(Unknown Source)
So You can see I am failing with "Missing JDO metadata for enhanced class
'org.apache.ojb.tutorial5.Product'"!
I would greatly appreciate yuor taking time looking into my problem and
hinting on what am I doing wrong! I have been stuck on this for a couple
of days and, I think, I exhausted my limited aresenal of knowldege.
additional info:
- I am running on FedoreCore 3
- I am running postgres 8.0.3
- I use j2sdk1.4.2_09
best regards,
Dmitri Litvintsev
---------------------------------------------------------------------
To unsubscribe, e-mail: ojb-user-unsubscribe@db.apache.org
For additional commands, e-mail: ojb-user-help@db.apache.org
Re: newbie problems
Posted by Antonio Gallardo <ag...@agssa.net>.
Dmitry Litvintsev escribió:
> Thank you Armin,
>
> Please educate me a bit, cause I am a bit perplexed by your mail.
>
> You say OJB does not work well w/ JDO, use ODMG or PB
>
> OK, I understand that.
>
> then you say:
>
>
>> If you want to use JDO, please have a look at JPOX or Speedo (or other
>>
>
> JPOX is a implementation of JDO, isn't it? So can I use OJB w/ JPOX then?
> Or should I just use JPOX ? (this indicates my confusion at what exactly
> OJB does on the top of JDO).
>
> Please help me out.
>
Hi Dmitry,
We cannot use OJB w/ JPOX. Basically, the JDO support in OJB works only
with Sun JDO 1.0.1 [1]. If you want to stay in "Apache home", you should
try Apache JDO wich is working on a final release of a "JDO 2" version.
Best Regards,
Antonio Gallardo.
[1] http://java.sun.com/products/jdo/
[2] http://db.apache.org/jdo/
>
> On Wed, 19 Apr 2006, Armin Waibel wrote:
>
>
>> Hi Dmitry,
>>
>> I don't know what's going wrong when running the tutorial (seems that
>> Product.class was correctly enhanced by the JDO enhancer).
>> But I wouldn't recommend OJB's JDO 1.0-api implementation for production
>> environments.
>> The PB-api and ODMG-api are stable and ready for production use
>> http://db.apache.org/ojb/status.html
>>
>> If you want to use JDO, please have a look at JPOX or Speedo (or other
>> projects)
>> http://www.jpox.org/index.jsp
>> http://speedo.objectweb.org/
>>
>> regards,
>> Armin
>>
>> Dmitry Litvintsev wrote:
>>
>>> Hi,
>>>
>>> I am developing a java application and I am considering OJB technology to
>>> store objects' states seamlessly in the PostgreSQL database.
>>>
>>> In short I am failing to get tutorial5 up and running. I followed
>>> instructions on this link:
>>>
>>> http://db.apache.org/ojb/docu/tutorials/jdo-tutorial.html
>>>
>>>
>
>
---------------------------------------------------------------------
To unsubscribe, e-mail: ojb-user-unsubscribe@db.apache.org
For additional commands, e-mail: ojb-user-help@db.apache.org
Re: newbie problems
Posted by Armin Waibel <ar...@apache.org>.
Dmitry Litvintsev wrote:
> Thank you Armin,
>
> Please educate me a bit, cause I am a bit perplexed by your mail.
>
> You say OJB does not work well w/ JDO, use ODMG or PB
>
> OK, I understand that.
>
> then you say:
>
>> If you want to use JDO, please have a look at JPOX or Speedo (or other
>
> JPOX is a implementation of JDO, isn't it?
yep!
> So can I use OJB w/ JPOX then?
> Or should I just use JPOX ? (this indicates my confusion at what exactly
> OJB does on the top of JDO).
JPOX instead of OJB (If you fixed to use the JDO-api).
OJB is a O/R-mapper with different supported API's (PB-api, ODMG-api,
prototype JDO1.0), JPOX "only" supports the JDO-api.
HTH
regards,
Armin
>
> Please help me out.
>
>
> On Wed, 19 Apr 2006, Armin Waibel wrote:
>
>> Hi Dmitry,
>>
>> I don't know what's going wrong when running the tutorial (seems that
>> Product.class was correctly enhanced by the JDO enhancer).
>> But I wouldn't recommend OJB's JDO 1.0-api implementation for production
>> environments.
>> The PB-api and ODMG-api are stable and ready for production use
>> http://db.apache.org/ojb/status.html
>>
>> If you want to use JDO, please have a look at JPOX or Speedo (or other
>> projects)
>> http://www.jpox.org/index.jsp
>> http://speedo.objectweb.org/
>>
>> regards,
>> Armin
>>
>> Dmitry Litvintsev wrote:
>>> Hi,
>>>
>>> I am developing a java application and I am considering OJB technology to
>>> store objects' states seamlessly in the PostgreSQL database.
>>>
>>> In short I am failing to get tutorial5 up and running. I followed
>>> instructions on this link:
>>>
>>> http://db.apache.org/ojb/docu/tutorials/jdo-tutorial.html
>>>
>
---------------------------------------------------------------------
To unsubscribe, e-mail: ojb-user-unsubscribe@db.apache.org
For additional commands, e-mail: ojb-user-help@db.apache.org
Re: newbie problems
Posted by Dmitry Litvintsev <li...@fnal.gov>.
Thank you Armin,
Please educate me a bit, cause I am a bit perplexed by your mail.
You say OJB does not work well w/ JDO, use ODMG or PB
OK, I understand that.
then you say:
> If you want to use JDO, please have a look at JPOX or Speedo (or other
JPOX is a implementation of JDO, isn't it? So can I use OJB w/ JPOX then?
Or should I just use JPOX ? (this indicates my confusion at what exactly
OJB does on the top of JDO).
Please help me out.
On Wed, 19 Apr 2006, Armin Waibel wrote:
> Hi Dmitry,
>
> I don't know what's going wrong when running the tutorial (seems that
> Product.class was correctly enhanced by the JDO enhancer).
> But I wouldn't recommend OJB's JDO 1.0-api implementation for production
> environments.
> The PB-api and ODMG-api are stable and ready for production use
> http://db.apache.org/ojb/status.html
>
> If you want to use JDO, please have a look at JPOX or Speedo (or other
> projects)
> http://www.jpox.org/index.jsp
> http://speedo.objectweb.org/
>
> regards,
> Armin
>
> Dmitry Litvintsev wrote:
> >
> > Hi,
> >
> > I am developing a java application and I am considering OJB technology to
> > store objects' states seamlessly in the PostgreSQL database.
> >
> > In short I am failing to get tutorial5 up and running. I followed
> > instructions on this link:
> >
> > http://db.apache.org/ojb/docu/tutorials/jdo-tutorial.html
> >
--
Dmitri Litvintsev
/----------------------------------------------------------\
| Tel: (630) 840 5005 |
| FAX: (630) 840 2968 |
| (630) 840 2783 |
| Pager: 847 536 6450 |
| office: WH8E 863 |
| E-mail: litvinse@fnal.gov |
\----------------------------------------------------------/
---------------------------------------------------------------------
To unsubscribe, e-mail: ojb-user-unsubscribe@db.apache.org
For additional commands, e-mail: ojb-user-help@db.apache.org
Re: newbie problems
Posted by Armin Waibel <ar...@apache.org>.
Hi Dmitry,
I don't know what's going wrong when running the tutorial (seems that
Product.class was correctly enhanced by the JDO enhancer).
But I wouldn't recommend OJB's JDO 1.0-api implementation for production
environments.
The PB-api and ODMG-api are stable and ready for production use
http://db.apache.org/ojb/status.html
If you want to use JDO, please have a look at JPOX or Speedo (or other
projects)
http://www.jpox.org/index.jsp
http://speedo.objectweb.org/
regards,
Armin
Dmitry Litvintsev wrote:
>
> Hi,
>
> I am developing a java application and I am considering OJB technology to
> store objects' states seamlessly in the PostgreSQL database.
>
> In short I am failing to get tutorial5 up and running. I followed
> instructions on this link:
>
> http://db.apache.org/ojb/docu/tutorials/jdo-tutorial.html
>
> My actions:
>
> 1) downloaded ojb-blank.jar
> 2) downloaded tutorial5-src.jar
> 3) downloaded db-ojb-1.0.4.jar
> 4) downloaded jdo.jar,jdori-enhancer.jar,jdori.jar (jdo 1.0.1 RI)
> 5) downloaded PostgreSQL drivers pg74.216.jdbc3.jar postgresql-8.1-405.jdbc3.jar
>
> my top directory is "ojb-blank"
> I put *jar files into lib (ojb-blank/lib)
> I put tutorial5 sources to (ojb_blank/src/java/org/apache/ojb/tutorial5)
>
> I modified buid.properties, so it looks like this:
>
> jcdAlias=default
> databaseName=ojb
> databaseUser=postgres
> databasePassword=
>
> dbmsName=PostgreSQL
> jdbcLevel=3.0
> jdbcRuntimeDriver=org.postgresql.Driver
> urlProtocol=jdbc
> urlSubprotocol=postgresql
> urlDbalias=//localhost/${databaseName}
>
> torque.database=postgresql
> torque.database.createUrl=${urlProtocol}:${urlSubprotocol}:${urlDbalias}
>
> jar.name=my-project.jar
>
> source.dir=src
> source.java.dir=${source.dir}/java
> source.resource.dir=${source.dir}/resources
> source.test.dir=${source.dir}/test
> source.schema.dir=${source.dir}/schema
>
> build.dir=build
> lib.dir=lib
>
> target.dir=target
>
> I do not recall changing build.xml.
>
>
> 1) DB setup
>
> ant build setup-db
>
> runs w/ errors, but it creates *.sql files which I run byu hand and next
> time around
>
> ant build setup-db
>
> runs w/o errors. So I consider it is a success:
> $ psql ojb
> Welcome to psql 8.0.3, the PostgreSQL interactive terminal.
>
> Type: \copyright for distribution terms
> \h for help with SQL commands
> \? for help with psql commands
> \g or terminate with semicolon to execute query
> \q to quit
>
> ojb=# \d
> List of relations
> Schema | Name | Type | Owner
> --------+-------------------+-------+----------
> public | ojb_dlist | table | postgres
> public | ojb_dlist_entries | table | postgres
> public | ojb_dmap | table | postgres
> public | ojb_dmap_entries | table | postgres
> public | ojb_dset | table | postgres
> public | ojb_dset_entries | table | postgres
> public | ojb_hl_seq | table | postgres
> public | ojb_nrm | table | postgres
> public | product | table | postgres
> (9 rows)
>
> 2) ant build
>
> $ ant build
> Buildfile: build.xml
>
> compile:
> [mkdir] Created dir: /data/postgres/ojb/ojb-blank/build
> [mkdir] Created dir: /data/postgres/ojb/ojb-blank/build/classes
> [javac] Compiling 9 source files to /data/postgres/ojb/ojb-blank/build/classes
>
> xdoclet:
> [ojbdoclet] 2006-04-18 18:33:08,102 [main] INFO xdoclet.XDocletMain.start - Running <ojbrepository/>
> [ojbdoclet] Generating ojb repository descriptor (build/repository_user.xml)
> [ojbdoclet] Type org.apache.ojb.tutorial5.Product
> [ojbdoclet] Processed 1 types
> [ojbdoclet] Processed 1 types
> [ojbdoclet] 2006-04-18 18:33:08,493 [main] INFO xdoclet.XDocletMain.start - Running <torqueschema/>
> [ojbdoclet] Generating torque schema (build/database/project-schema.xml)
> [ojbdoclet] Processed 1 types
>
> build:
> [copy] Copying 7 files to /data/postgres/ojb/ojb-blank/build
> [mkdir] Created dir: /data/postgres/ojb/ojb-blank/build/lib
> [copy] Copying 41 files to /data/postgres/ojb/ojb-blank/build/lib
>
> build_if_with_mainclass:
> [copy] Copying 2 files to /data/postgres/ojb/ojb-blank/build
>
> BUILD SUCCESSFUL
> Total time: 3 seconds
>
> so I am encouraged , I proceed to the next step:
>
> 3) ant enhance-jdori
>
> $ ant enhance-jdori
>
> Buildfile: build.xml
>
> compile:
>
> xdoclet:
> [ojbdoclet] 2006-04-18 18:34:35,546 [main] INFO xdoclet.XDocletMain.start - Running <ojbrepository/>
> [ojbdoclet] 2006-04-18 18:34:36,128 [main] INFO xdoclet.XDocletMain.start - Running <torqueschema/>
>
> build:
>
> build_if_with_mainclass:
>
> enhance-jdori:
> [java] Enhancer: options:
> [java] verbose = true
> [java] quiet = false
> [java] forceWrite = true
> [java] noWrite = false
> [java] sourcePath = null
> [java] destinationDirectory = build/classes
> [java] propertiesFileName = null
> [java] doTiming = false
> [java] classNames = {
> [java] }
> [java] jdoFileNames = {
> [java] src/java/org/apache/ojb/tutorial5/Product.jdo
> [java] }
> [java] classFileNames = {
> [java] build/classes/org/apache/ojb/tutorial5/Product.class
> [java] }
> [java] zipFileNames = {
> [java] }
> [java] dumpClass = false
> [java] noAugment = false
> [java] noAnnotate = false
> [java] JDO ENHANCER: using file: file:/data/postgres/ojb/ojb-blank/build/classes/org/apache/ojb/tutorial5/Product.class
> [java] Class Locator: using class files: {
> [java] build/classes/org/apache/ojb/tutorial5/Product.class
> [java] }
> [java] JDO ENHANCER: using file: file:/data/postgres/ojb/ojb-blank/src/java/org/apache/ojb/tutorial5/Product.jdo
> [java]
> ---------------------------------------------------------------------------
>
> [java] JDO ENHANCER: Enhancer: enhancing classfile ...
> [java] JDO ENHANCER: scanning class org.apache.ojb.tutorial5.Product
> [java] JDO ENHANCER: not found resource: META-INF/package.jdo
> [java] JDO ENHANCER: not found resource: WEB-INF/package.jdo
> [java] JDO ENHANCER: not found resource: package.jdo
> [java] JDO ENHANCER: not found resource: org/package.jdo
> [java] JDO ENHANCER: not found resource: org/apache/package.jdo
> [java] JDO ENHANCER: not found resource: org/apache/ojb/package.jdo
> [java] JDO ENHANCER: not found resource: org/apache/ojb/tutorial5/package.jdo
> [java] JDO ENHANCER: found resource: org/apache/ojb/tutorial5/Product.jdo
> [java] JDO ENHANCER: has default constructor.
> [java] JDO ENHANCER: has not static initializer.
> [java] JDO ENHANCER: has not clone method.
> [java] JDO ENHANCER: has not writeObject method.
> [java] JDO ENHANCER: has not writeReplace method.
> [java] JDO ENHANCER: has not readObject method.
> [java] JDO ENHANCER: has the specific JDO fields: false.
> [java] JDO ENHANCER: has the specific JDO methods: false.
> [java] JDO ENHANCER: has the specific JDO fields and methods: false.
> [java] JDO ENHANCER: has the instance-callback JDO methods: false.
> [java] JDO ENHANCER: has the instance-callback JDO methods: false.
> [java] JDO ENHANCER: implements the JDO PersistenceCapable interface: false.
> [java] JDO ENHANCER: has the generic JDO fields: false.
> [java] JDO ENHANCER: has the generic JDO methods: false.
> [java] JDO ENHANCER: has the generic JDO fields and methods: false.
> [java] JDO ENHANCER: augmenting class org.apache.ojb.tutorial5.Product
> [java] JDO ENHANCER: adding: javax.jdo.spi.StateManager jdoStateManager
> [java] JDO ENHANCER: adding: byte jdoFlags
> [java] JDO ENHANCER: adding: void jdoReplaceFlags()
> [java] JDO ENHANCER: adding: boolean jdoIsPersistent()
> [java] JDO ENHANCER: adding: boolean jdoIsTransactional()
> [java] JDO ENHANCER: adding: boolean jdoIsNew()
> [java] JDO ENHANCER: adding: boolean jdoIsDeleted()
> [java] JDO ENHANCER: adding: boolean jdoIsDirty()
> [java] JDO ENHANCER: adding: void jdoMakeDirty(java.lang.String)
> [java] JDO ENHANCER: adding: void jdoPreSerialize()
> [java] JDO ENHANCER: adding: javax.jdo.PersistenceManager jdoGetPersistenceManager()
> [java] JDO ENHANCER: adding: java.lang.Object jdoGetObjectId()
> [java] JDO ENHANCER: adding: java.lang.Object jdoGetTransactionalObjectId()
> [java] JDO ENHANCER: adding: void jdoReplaceStateManager(javax.jdo.spi.StateManager)
> [java] JDO ENHANCER: adding: void jdoProvideFields(int[])
> [java] JDO ENHANCER: adding: void jdoReplaceFields(int[])
> [java] JDO ENHANCER: adding: java.lang.Class sunjdo$classForName$(java.lang.String)
> [java] JDO ENHANCER: adding: implements javax.jdo.spi.PersistenceCapable
> [java] JDO ENHANCER: adding: int jdoInheritedFieldCount
> [java] JDO ENHANCER: adding: java.lang.String[] jdoFieldNames
> [java] JDO ENHANCER: adding: java.lang.Class[] jdoFieldTypes
> [java] JDO ENHANCER: adding: byte[] jdoFieldFlags
> [java] JDO ENHANCER: adding: java.lang.Class jdoPersistenceCapableSuperclass
> [java] JDO ENHANCER: adding: int jdoGetManagedFieldCount()
> [java] JDO ENHANCER: adding: void <clinit>()
> [java] JDO ENHANCER: adding: javax.jdo.spi.PersistenceCapable jdoNewInstance(javax.jdo.spi.StateManager)
> [java] JDO ENHANCER: adding: javax.jdo.spi.PersistenceCapable jdoNewInstance(javax.jdo.spi.StateManager, java.lang.Object)
> [java] JDO ENHANCER: adding: void jdoProvideField(int)
> [java] JDO ENHANCER: adding: void jdoReplaceField(int)
> [java] JDO ENHANCER: adding: void jdoCopyField(org.apache.ojb.tutorial5.Product, int)
> [java] JDO ENHANCER: adding: void jdoCopyFields(java.lang.Object, int[])
> [java] JDO ENHANCER: adding: java.lang.Object jdoNewObjectIdInstance()
> [java] JDO ENHANCER: adding: java.lang.Object jdoNewObjectIdInstance(java.lang.String)
> [java] JDO ENHANCER: adding: void jdoCopyKeyFieldsToObjectId(java.lang.Object)
> [java] JDO ENHANCER: adding: void jdoCopyKeyFieldsFromObjectId(java.lang.Object)
> [java] JDO ENHANCER: adding: void jdoCopyKeyFieldsToObjectId(javax.jdo.spi.PersistenceCapable$ObjectIdFieldSupplier, java.lang.Object)
> [java] JDO ENHANCER: adding: void jdoCopyKeyFieldsFromObjectId(javax.jdo.spi.PersistenceCapable$ObjectIdFieldConsumer, java.lang.Object)
> [java] JDO ENHANCER: adding: java.lang.Integer jdoGetid(org.apache.ojb.tutorial5.Product)
> [java] JDO ENHANCER: adding: void jdoSetid(org.apache.ojb.tutorial5.Product, java.lang.Integer)
> [java] JDO ENHANCER: adding: java.lang.String jdoGetname(org.apache.ojb.tutorial5.Product)
> [java] JDO ENHANCER: adding: void jdoSetname(org.apache.ojb.tutorial5.Product, java.lang.String)
> [java] JDO ENHANCER: adding: double jdoGetprice(org.apache.ojb.tutorial5.Product)
> [java] JDO ENHANCER: adding: void jdoSetprice(org.apache.ojb.tutorial5.Product, double)
> [java] JDO ENHANCER: adding: int jdoGetstock(org.apache.ojb.tutorial5.Product)
> [java] JDO ENHANCER: adding: void jdoSetstock(org.apache.ojb.tutorial5.Product, int)
> [java] JDO ENHANCER: adding: void writeObject(java.io.ObjectOutputStream)
> [java] JDO ENHANCER: annotating class org.apache.ojb.tutorial5.Product
> [java] JDO ENHANCER: annotating: org.apache.ojb.tutorial5.Product.getId()
> [java] JDO ENHANCER: annotating: org.apache.ojb.tutorial5.Product.setName(java.lang.String)
> [java] JDO ENHANCER: annotating: org.apache.ojb.tutorial5.Product.<init>()
> [java] JDO ENHANCER: annotating: org.apache.ojb.tutorial5.Product.getPrice()
> [java] JDO ENHANCER: annotating: org.apache.ojb.tutorial5.Product.setPrice(double)
> [java] JDO ENHANCER: annotating: org.apache.ojb.tutorial5.Product.setStock(int)
> [java] JDO ENHANCER: annotating: org.apache.ojb.tutorial5.Product.toString()
> [java] JDO ENHANCER: annotating: org.apache.ojb.tutorial5.Product.getStock()
> [java] JDO ENHANCER: annotating: org.apache.ojb.tutorial5.Product.getName()
> [java] JDO ENHANCER: annotating: org.apache.ojb.tutorial5.Product.setId(int)
> [java] JDO ENHANCER: writing enhanced class org.apache.ojb.tutorial5.Product to output stream
>
> [java] JDO ENHANCER: Enhancer: classfile enhanced successfully.
> [java] done.
>
> BUILD SUCCESSFUL
> Total time: 6 seconds
>
> So I am extatic. I do:
>
> 4) cd build
> chmod +x run.sh
> ./run.sh
> bash: ./run.sh: Permission denied
> [litvinse@cduqbar build]$ chmod +x run.sh
> [litvinse@cduqbar build]$ ./run.sh
> _ _
> __ (_)| |_
> / _\| || _ \ ~ be persistent ~
> \__/| ||___/ v. 1.0.4
> /_/
>
> Welcome to the OJB JDO RI tutorial application
>
>
> [0] List all product entries
> [1] Enter a new product
> [2] Edit a product entry
> [3] Delete a product entry
> [4] Quit Application
> type in number to select a use case
> 1
> please enter a new product
> enter name: casio
> enter price: 10
> enter available stock: 10
> 0 INFO [main] BOOT - -- boot log messages -->
>
> 21 DEBUG [main] JDO - OjbStoreConnector.begin: connectionReadyForRelease=false
> 41 DEBUG [main] BOOT - Instantiate PersistenceBrokerFactory
> 64 INFO [main] BOOT - Loading OJB's properties: file:/data/postgres/ojb/ojb-blank/build/OJB.properties
> 89 DEBUG [main] BOOT - No value for key "ObjectCacheClass", using default org.apache.ojb.broker.cache.ObjectCacheDefaultImpl.
> 144 DEBUG [main] BOOT - Using logger class 'class org.apache.ojb.broker.util.logging.Log4jLoggerImpl' for org.apache.ojb.broker.core.proxy.AbstractProxyFactory
> 144 DEBUG [main] BOOT - Initializing logger instance org.apache.ojb.broker.core.proxy.AbstractProxyFactory
> 180 DEBUG [main] BOOT - Using logger class 'class org.apache.ojb.broker.util.logging.Log4jLoggerImpl' for org.apache.ojb.broker.core.PersistenceBrokerFactoryBaseImpl1
> 180 DEBUG [main] BOOT - Initializing logger instance org.apache.ojb.broker.core.PersistenceBrokerFactoryBaseImpl
> 180 DEBUG [main] BOOT - Using logger class 'class org.apache.ojb.broker.util.logging.Log4jLoggerImpl' for org.apache.ojb.broker.core.PersistenceBrokerFactoryDefaultImpl
> 181 DEBUG [main] BOOT - Initializing logger instance org.apache.ojb.broker.core.PersistenceBrokerFactoryDefaultImpl
> 218 DEBUG [main] core.PersistenceBrokerFactoryDefaultImpl - PersistenceBroker pool will be setup with the following configuration org.apache.commons.pool.impl.GenericKeyedObjectPool$Config@1592174[
> maxIdle=-1
> maxActive=100
> maxTotal=-1
> maxWait=2000
> whenExhaustedAction=0
> testOnBorrow=false
> testOnReturn=false
> testWhileIdle=false
> timeBetweenEvictionRunsMillis=-1
> numTestsPerEvictionRun=10
> minEvictableIdleTimeMillis=1000000
> ]
> 253 INFO [main] core.PersistenceBrokerFactoryDefaultImpl - Create
> PersistenceBroker instance pool, pool configuration was
> {whenExhaustedAction=0, maxIdle=-1, maxActive=100, maxWait=2000,
> removeAbandoned=false, numTestsPerEvictionRun=10,
> minEvictableIdleTimeMillis=1000000, testWhileIdle=false,
> testOnReturn=false, logAbandoned=false, minIdle=0,
> removeAbandonedTimeout=300, timeBetweenEvictionRunsMillis=-1,
> testOnBorrow=false}
> 253 INFO [main] BOOT - PersistencebrokerFactory class instantiated: org.apache.ojb.broker.core.PersistenceBrokerFactoryDefaultImpl@2a4983
> 274 DEBUG [main] BOOT - Using logger class 'class org.apache.ojb.broker.util.logging.Log4jLoggerImpl' for org.apache.ojb.broker.metadata.MetadataManager
> 275 DEBUG [main] BOOT - Initializing logger instance org.apache.ojb.broker.metadata.MetadataManager
> 303 DEBUG [main] BOOT - Using logger class 'class org.apache.ojb.broker.util.logging.Log4jLoggerImpl' for org.apache.ojb.broker.metadata.RepositoryPersistor
> 303 DEBUG [main] BOOT - Initializing logger instance org.apache.ojb.broker.metadata.RepositoryPersistor
> 326 INFO [main] metadata.RepositoryPersistor - OJB Descriptor Repository: file:/data/postgres/ojb/ojb-blank/build/repository.xml
> 326 INFO [main] metadata.RepositoryPersistor - Building repository from :file:/data/postgres/ojb/ojb-blank/build/repository.xml
> 370 INFO [main] metadata.RepositoryPersistor - RepositoryPersistor using SAXParserFactory : org.apache.xerces.jaxp.SAXParserFactoryImpl
> 575 DEBUG [main] BOOT - Using logger class 'class org.apache.ojb.broker.util.logging.Log4jLoggerImpl' for org.apache.ojb.broker.metadata.DescriptorRepository
> 575 DEBUG [main] BOOT - Initializing logger instance org.apache.ojb.broker.metadata.DescriptorRepository
> 611 DEBUG [main] BOOT - Using logger class 'class org.apache.ojb.broker.util.logging.Log4jLoggerImpl' for org.apache.ojb.broker.metadata.RepositoryXmlHandler
> 611 DEBUG [main] BOOT - Initializing logger instance org.apache.ojb.broker.metadata.RepositoryXmlHandler
>
> <SNIP> .... <SNIP> ot tons of debugging stuff
>
> 4240 INFO [main] accesslayer.ConnectionFactoryPooledImpl - Create new
> connection
> pool:org.apache.ojb.broker.metadata.JdbcConnectionDescriptor@d9660d[
> jcd-alias=default
> default-connection=true
> dbms=PostgreSQL
> jdbc-level=3.0
> driver=org.postgresql.Driver
> protocol=jdbc
> sub-protocol=postgresql
> db-alias=//localhost/ojb
> user=postgres
> password=*****
> eager-release=false
> ConnectionPoolDescriptor={whenExhaustedAction=0, maxIdle=-1,
> maxActive=30, maxWait=10000, removeAbandoned=false,
> numTestsPerEvictionRun=10, minEvictableIdleTimeMillis=600000,
> testWhileIdle=false, testOnReturn=false, logAbandoned=false, minIdle=0,
> fetchSize=0, removeAbandonedTimeout=300, timeBetweenEvictionRunsMillis=-1,
> testOnBorrow=true}
> batchMode=false
> useAutoCommit=AUTO_COMMIT_SET_TRUE_AND_TEMPORARY_FALSE
> ignoreAutoCommitExceptions=false
>
> sequenceDescriptor=org.apache.ojb.broker.metadata.SequenceDescriptor@bb0d0d[
> sequenceManagerClass=class
> org.apache.ojb.broker.util.sequence.SequenceManagerHighLowImpl
> Properties={autoNaming=true, seq.start=200000, grabSize=20}
> ]
> ]
> 4241 DEBUG [main] accesslayer.ConnectionFactoryPooledImpl - createPool was called
> 4270 DEBUG [main] accesslayer.ConnectionFactoryPooledImpl - makeObject called
> 4368 DEBUG [main] accesslayer.ConnectionFactoryAbstractImpl - Create new connection using DriverManager: org.postgresql.jdbc3.Jdbc3Connection@1fd6bea
> 4370 DEBUG [main] accesslayer.ConnectionManagerImpl - Request new connection from ConnectionFactory: org.postgresql.jdbc3.Jdbc3Connection@1fd6bea
> 4390 DEBUG [main] accesslayer.ConnectionManagerImpl - localBegin was called for con org.postgresql.jdbc3.Jdbc3Connection@1fd6bea
> 4391 DEBUG [main] accesslayer.ConnectionManagerImpl - Try to change autoCommit state to 'false'
> Missing JDO metadata for enhanced class 'org.apache.ojb.tutorial5.Product'.
> com.sun.jdori.model.ModelFatalException: Missing JDO metadata for enhanced class 'org.apache.ojb.tutorial5.Product'.
> at com.sun.jdori.common.model.jdo.JDOModelImpl.lookupXMLMetadata(Unknown Source)
> at com.sun.jdori.common.model.jdo.JDOModelImpl.getJDOClass(Unknown Source)
> at com.sun.jdori.common.model.jdo.JDOModelImpl.getJDOClass(Unknown Source)
> at com.sun.jdori.common.model.runtime.RuntimeJavaType.getJDOClass(Unknown Source)
> at com.sun.jdori.common.state.StateManagerImpl.initializePC(Unknown Source)
> at com.sun.jdori.common.state.StateManagerImpl.<init>(Unknown Source)
> at com.sun.jdori.common.state.StateManagerFactory.newInstance(Unknown Source)
> at com.sun.jdori.common.CacheManagerImpl.makePersistent(Unknown Source)
> at com.sun.jdori.common.PersistenceManagerImpl.makePersistentInternal(Unknown Source)
> at com.sun.jdori.common.PersistenceManagerImpl.makePersistent(Unknown Source)
> at com.sun.jdori.common.PersistenceManagerWrapper.makePersistent(Unknown Source)
> at org.apache.ojb.tutorial5.UCEnterNewProduct.apply(Unknown Source)
> at org.apache.ojb.tutorial5.Application.run(Unknown Source)
> at org.apache.ojb.tutorial5.Application.main(Unknown Source)
>
>
>
> So You can see I am failing with "Missing JDO metadata for enhanced class
> 'org.apache.ojb.tutorial5.Product'"!
>
> I would greatly appreciate yuor taking time looking into my problem and
> hinting on what am I doing wrong! I have been stuck on this for a couple
> of days and, I think, I exhausted my limited aresenal of knowldege.
>
> additional info:
>
> - I am running on FedoreCore 3
> - I am running postgres 8.0.3
> - I use j2sdk1.4.2_09
>
>
>
>
> best regards,
> Dmitri Litvintsev
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: ojb-user-unsubscribe@db.apache.org
> For additional commands, e-mail: ojb-user-help@db.apache.org
>
>
---------------------------------------------------------------------
To unsubscribe, e-mail: ojb-user-unsubscribe@db.apache.org
For additional commands, e-mail: ojb-user-help@db.apache.org