Hi Armin and Thomas
I will try to hunt them one by one, my JINI service should be as small as possible.
It enable, client having only some jini capabilities to access databases and in that case small is beautifull.
Have nice time. Thank's again, OJB is realy a nice project.
Andre
Armin Waibel wrote:
Hi Andre,
assume the same problem as with 'org.apache.ojb.odmg.collections.DListImpl_2' before.
Now you have class loader problem with: org.apache.ojb.broker.platforms.PlatformPostgreSQLImpl org.apache.ojb.broker.accesslayer.JdbcAccessImpl
regards, Armin
A Leg wrote:
Hi Armin and Thomas
Following your advices I progress a lot.
Problems was comming from the fact that some class loaded at run time was not included in jar.
At compile I nuse a ClassDep api which detect required classes and put it in jar.
But they don't detect what is loaded at run time.
As with rc7 we load at run time some odmg classes even if we don't use odmg, theses classes was not existing in my jar.
From the stack trace of RepositoryXmlHandler, I got the name of missing classes etc...
Only problem I fail someWhere after now.
Without software problems, companies would not need software engeneers so it's may be a good news...
The stack trace is :
Any idea welcome; I keep looking for some missing class on my side.
One more time thank's for your help.
Andre
ConnectionDescriptorXmlHandler endElement uri name qName descriptor-repository
**** endDoc ****
readMetadataFromXML result = repository
readMetadataFromXML rreturn result
[org.apache.ojb.broker.metadata.RepositoryPersistor] INFO: Read connection repository took 1259 ms
[org.apache.ojb.broker.core.PersistenceBrokerFactoryBaseImpl] INFO: Create new PB instance for PBKey org.apache.ojb.broker.PBKey: jcdAlias=default, user=postgres, password=*****, already created persistence broker instances: 0
[DEFAULT] WARN: [PlatformFactory] problems with platform org.apache.ojb.broker.platforms.PlatformPostgreSQLImpl: org.apache.ojb.broker.platforms.PlatformPostgreSQLImpl
[DEFAULT] WARN: [PlatformFactory] OJB will use PlatformDefaultImpl instead
[org.apache.ojb.broker.cache.ObjectCacheFactory] INFO: Start creating new ObjectCache instance
[org.apache.ojb.broker.cache.ObjectCacheFactory] INFO: Default ObjectCache class was org.apache.ojb.broker.cache.ObjectCacheDefaultImpl
[org.apache.ojb.broker.cache.CacheDistributor] INFO: Use property 'descriptorBasedCaches' is set 'false'
[org.apache.ojb.broker.cache.ObjectCacheFactory] INFO: Instantiate new org.apache.ojb.broker.cache.CacheDistributor class object
[org.apache.ojb.broker.cache.ObjectCacheFactory] INFO: New ObjectCache instance was created
[BOOT] WARN: Value "org.apache.ojb.broker.accesslayer.JdbcAccessImpl" is illegal for key "JdbcAccessClass" (should be a class, using default value null)
[org.apache.ojb.broker.accesslayer.JdbcAccessFactory] ERROR: ConfigurableFactory configuration key class for key'JdbcAccessClass' does not exist.
[org.apache.ojb.broker.core.PersistenceBrokerFactoryBaseImpl] ERROR: Creation of a new PB instance failed
null
java.lang.reflect.InvocationTargetException
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:274)
at org.apache.ojb.broker.util.ClassHelper.newInstance(Unknown Source)
at org.apache.ojb.broker.util.ClassHelper.newInstance(Unknown Source)
at org.apache.ojb.broker.core.PersistenceBrokerFactoryBaseImpl.createNewBrokerInstance(Unknown Source)
at org.apache.ojb.broker.core.PersistenceBrokerFactoryDefaultImpl$PBKeyedPoolableObjectFactory.makeObject(Unknown Source)
at org.apache.commons.pool.impl.GenericKeyedObjectPool.borrowObject(Unknown Source)
at org.apache.ojb.broker.core.PersistenceBrokerFactoryDefaultImpl.createPersistenceBroker(Unknown Source)
at org.apache.ojb.broker.core.PersistenceBrokerFactoryBaseImpl.defaultPersistenceBroker(Unknown Source)
at org.apache.ojb.broker.PersistenceBrokerFactory.defaultPersistenceBroker(Unknown Source)
at org.compiere.mfg_scm.dbManager.TaskConsumer.<init>(Unknown Source)
at org.compiere.mfg_scm.dbManager.DbManagerImpl.createTaskConsumer(Unknown Source)
at org.compiere.mfg_scm.dbManager.DbManagerImpl.addTaskConsumer(Unknown Source)
at org.compiere.mfg_scm.dbManager.DbManagerImpl.initialize(Unknown Source)
at com.sun.rio.jsb.ServiceBeanAdapter.doStart(ServiceBeanAdapter.java:277)
at com.sun.rio.jsb.ServiceBeanAdapter.access$000(ServiceBeanAdapter.java:101)
at com.sun.rio.jsb.ServiceBeanAdapter$1.run(ServiceBeanAdapter.java:237)
at com.sun.rio.jsb.ServiceBeanAdapter.start(ServiceBeanAdapter.java:248)
at com.sun.rio.boot.ServiceBeanLoader.load(ServiceBeanLoader.java:171)
at com.sun.rio.cybernode.JSBDelegate$2.run(JSBDelegate.java:342)
Caused by: org.apache.ojb.broker.PersistenceBrokerException: ConfigurableFactory configuration key class for key'JdbcAccessClass' does not exist.
at org.apache.ojb.broker.util.factory.ConfigurableFactory.configure(Unknown Source)
at org.apache.ojb.broker.util.configuration.impl.OjbConfigurator.configure(Unknown Source)
at org.apache.ojb.broker.util.factory.ConfigurableFactory.<init>(Unknown Source)
at org.apache.ojb.broker.accesslayer.JdbcAccessFactory.<init>(Unknown Source)
at org.apache.ojb.broker.accesslayer.JdbcAccessFactory.getInstance(Unknown Source)
at org.apache.ojb.broker.core.PersistenceBrokerImpl.<init>(Unknown Source)
... 22 more
org.apache.ojb.broker.PBFactoryException: Borrow broker from pool failed, using PBKey org.apache.ojb.broker.PBKey: jcdAlias=default, user=postgres, password=*****
at org.apache.ojb.broker.core.PersistenceBrokerFactoryDefaultImpl.createPersistenceBroker(Unknown Source)
at org.apache.ojb.broker.core.PersistenceBrokerFactoryBaseImpl.defaultPersistenceBroker(Unknown Source)
at org.apache.ojb.broker.PersistenceBrokerFactory.defaultPersistenceBroker(Unknown Source)
at org.compiere.mfg_scm.dbManager.TaskConsumer.<init>(Unknown Source)
at org.compiere.mfg_scm.dbManager.DbManagerImpl.createTaskConsumer(Unknown Source)
at org.compiere.mfg_scm.dbManager.DbManagerImpl.addTaskConsumer(Unknown Source)
at org.compiere.mfg_scm.dbManager.DbManagerImpl.initialize(Unknown Source)
at com.sun.rio.jsb.ServiceBeanAdapter.doStart(ServiceBeanAdapter.java:277)
at com.sun.rio.jsb.ServiceBeanAdapter.access$000(ServiceBeanAdapter.java:101)
at com.sun.rio.jsb.ServiceBeanAdapter$1.run(ServiceBeanAdapter.java:237)
at com.sun.rio.jsb.ServiceBeanAdapter.start(ServiceBeanAdapter.java:248)
at com.sun.rio.boot.ServiceBeanLoader.load(ServiceBeanLoader.java:171)
at com.sun.rio.cybernode.JSBDelegate$2.run(JSBDelegate.java:342)
Caused by: org.apache.ojb.broker.PBFactoryException: Creation of a new PB instance failed
at org.apache.ojb.broker.core.PersistenceBrokerFactoryBaseImpl.createNewBrokerInstance(Unknown Source)
at org.apache.ojb.broker.core.PersistenceBrokerFactoryDefaultImpl$PBKeyedPoolableObjectFactory.makeObject(Unknown Source)
at org.apache.commons.pool.impl.GenericKeyedObjectPool.borrowObject(Unknown Source)
... 13 more
Caused by: java.lang.reflect.InvocationTargetException
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:274)
at org.apache.ojb.broker.util.ClassHelper.newInstance(Unknown Source)
at org.apache.ojb.broker.util.ClassHelper.newInstance(Unknown Source)
... 16 more
Caused by: org.apache.ojb.broker.PersistenceBrokerException: ConfigurableFactory configuration key class for key'JdbcAccessClass' does not exist.
at org.apache.ojb.broker.util.factory.ConfigurableFactory.configure(Unknown Source)
at org.apache.ojb.broker.util.configuration.impl.OjbConfigurator.configure(Unknown Source)
at org.apache.ojb.broker.util.factory.ConfigurableFactory.<init>(Unknown Source)
at org.apache.ojb.broker.accesslayer.JdbcAccessFactory.<init>(Unknown Source)
at org.apache.ojb.broker.accesslayer.JdbcAccessFactory.getInstance(Unknown Source)
at org.apache.ojb.broker.core.PersistenceBrokerImpl.<init>(Unknown Source)
... 22 more
Armin Waibel wrote:
Hi Andre,
A Leg wrote:
Hi Thomas
I upgrade my machine from CVS this morning.
The class loader problem desappear without having to use setClassLoader.
Thank's for the idea.
But I sill have the following error :
STARTING DBMANAGER !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Starting TaskConsumerDB
Starting TaskConsumerDB try
[BOOT] WARN: Value "org.apache.ojb.odmg.collections.DListImpl_2" is illegal for key "OqlCollectionClass" (should be a class, using default value class org.apache.ojb.odmg.collections.DListImpl)
hmm, I think this warning is still caused by a class loader problem, because the specified class exists in source.
To get more information about repository parsing you should enable 'DEBUG' logging status for
org.apache.ojb.broker.metadata.RepositoryXmlHandler
org.apache.ojb.broker.metadata.ConnectionDescriptorXmlHandler
in the used logging framework.
regards, Armin
[org.apache.ojb.broker.core.PersistenceBrokerFactoryDefaultImpl] INFO: Create PersistenceBroker instance pool, pool configuration was {whenExhaustedAction=0, maxIdle=-1, maxActive=100, maxWait=2000, removeAbandoned=false, numTestsPerEvictionRun=10, testWhileIdle=false, minEvictableIdleTimeMillis=1000000, testOnReturn=false, logAbandoned=false, removeAbandonedTimeout=300, timeBetweenEvictionRunsMillis=-1, testOnBorrow=false}
readDescriptorRepository filename repository.xml
readDescriptorRepository else useSerializedRepository repository.xml
readDescriptorRepository buildRepository repository.xml
[org.apache.ojb.broker.metadata.RepositoryPersistor] INFO: OJB Descriptor Repository: file:/home/Absynt/Compiere/mfg_scm/sbin/repository.xml
[org.apache.ojb.broker.metadata.RepositoryPersistor] INFO: Building repository from :file:/home/Absynt/Compiere/mfg_scm/sbin/repository.xml
readMetadataFromXML SAXParserFactory.newInstance().newSAXParser()
readMetadataFromXML p.getClass().getName()
readMetadataFromXML p.getXMLReader()
readMetadataFromXML reader.getClass().getName().indexOf
readMetadataFromXML reader.setFeature
readMetadataFromXML if DescriptorRepository.class.equals(target)
readMetadataFromXML DescriptorRepository.class.equals(target)
readMetadataFromXML DescriptorRepository
readMetadataFromXML RepositoryXmlHandler
readMetadataFromXML reader.setContentHandler
readMetadataFromXML reader.parse(source)
org.apache.ojb.broker.metadata.MetadataException: Can't read repository file 'repository.xml'
at org.apache.ojb.broker.metadata.MetadataManager.init(Unknown Source)
at org.apache.ojb.broker.metadata.MetadataManager.<init>(Unknown Source)
at org.apache.ojb.broker.metadata.MetadataManager.getInstance(Unknown Source)
at org.apache.ojb.broker.core.PersistenceBrokerFactoryBaseImpl.getDefaultKey(Unknown Source)
at org.apache.ojb.broker.core.PersistenceBrokerFactoryBaseImpl.defaultPersistenceBroker(Unknown Source)
at org.apache.ojb.broker.PersistenceBrokerFactory.defaultPersistenceBroker(Unknown Source)
at org.compiere.mfg_scm.dbManager.TaskConsumer.<init>(Unknown Source)
at org.compiere.mfg_scm.dbManager.DbManagerImpl.createTaskConsumer(Unknown Source)
at org.compiere.mfg_scm.dbManager.DbManagerImpl.addTaskConsumer(Unknown Source)
at org.compiere.mfg_scm.dbManager.DbManagerImpl.initialize(Unknown Source)
Caused by: org.apache.ojb.broker.metadata.MetadataException: Exception when reading metadata information, please check your repository.xml file
at org.apache.crimson.parser.Parser2.parseInternal(Parser2.java:691)
at org.apache.crimson.parser.Parser2.parse(Parser2.java:337)
at org.apache.crimson.parser.XMLReaderImpl.parse(XMLReaderImpl.java:448)
at org.apache.ojb.broker.metadata.RepositoryPersistor.readMetadataFromXML(Unknown Source)
at org.apache.ojb.broker.metadata.RepositoryPersistor.buildRepository(Unknown Source)
at org.apache.ojb.broker.metadata.RepositoryPersistor.readDescriptorRepository(Unknown Source)
... 16 more
I have add some debug to be sure that the problem was not classLoader.
The problem arrive during *reader.parse(source) in readMetadataFromXML*
I first try to get my different repository files good, no result, then I copy all repository from test.
{orion:rcs} cp /home/rcs/Master/extern/java/db-ojb/target/srctest/org/apache/ojb/repository*.xml /home/Absynt/Compiere/mfg_scm/sbin/
{orion:rcs} cp /home/rcs/Master/extern/java/db-ojb/target/srctest/org/apache/ojb/repository.xml /home/Absynt/Compiere/mfg_scm/sbin/
And the error did not desappear.
Any idea welcome.
Andre
Thomas Dudziak wrote:
A Leg wrote:
Hi Thomas.
In fact setClassLoader is not usable.
As ClassLoader is used inside the first call to OJB :
PersistenceBrokerFactory.defaultPersistenceBroker();
Which use it to load Configuration and Logger elements.
So when you have conflict between OJB ClassLoader and your application ClassLoader ....
Hmm, why would that prevent you from using setClassLoader ?
// this should be the very first call ClassHelper.setClassLoader(myClassLoader);
// because of this call logging and OJB will get initialized (lazy initialization)
broker = PersistenceBrokerFactory.defaultPersistenceBroker();
Since ClassHelper does not use logging or OJB's properties, there should be no interference!
Tom
--------------------------------------------------------------------- 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]
--------------------------------------------------------------------- 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]
