Looks like some cross-ClassLoader issue in Geronimo. I don't think this is Cayenne related.

Andrus

On Feb 25, 2007, at 5:04 AM, Lasantha Ranaweera wrote:

Hi Cayenne Experts,

Currently I have been hitting with a problem of ClassCastException in my first JPA program of Geronimo/Caynne integration. I am unable to find out
the exact problem since my knowledge of Cayenne architecture is pretty
low. In the Geronimo side following is the line it gives this problem.

Class clazz = classLoader.loadClass(persistenceProviderClassName);
PersistenceProvider persistenceProvider =
(PersistenceProvider)clazz.newInstance(); //here is the CCE Exception

In Eclipse remote debugging enviroment it comes to Cayenne Provider class and it finishes default constructor without any errors. Does the Cayenne do anyting after creating the Provider instance when it comes to a server
enviroment? I split two statements investigate more and list the
interfaces in clazz variable. It lists PersistenceProvider interface
correctly too. So I am wondering where is CCE occurs. I attached the error
below but it doesn't give that much information. Any help please ...

Additionally I didn't add any properties in persitence.xml file. I want to
use Derby database to save JPA object too. Do I need to set
org.apache.cayenne.jpa.jpaDataSourceFactory property, then what is the
value it should be?

<persistence xmlns="http://java.sun.com/xml/ns/persistence"; version="1.0">

<persistence-unit transaction-type="RESOURCE_LOCAL" name="openjpa-itest">
        <provider>org.apache.cayenne.jpa.Provider</provider>
        <class>org.apache.geronimo.itest.jpa.AllFieldTypes</class>
        <exclude-unlisted-classes/>

        <properties>
         <!--
<property name="org.apache.cayenne.jpa.jpaDataSourceFactory"
value=""/>
         -->
        </properties>
    </persistence-unit>
</persistence>

Thanks,
Lasantha Ranaweera

java.lang.ClassCastException: org.apache.cayenne.jpa.Provider
        at
org.apache.geronimo.persistence.PersistenceUnitGBean.<init> (PersistenceUnitGBean.java:102) 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:494)
        at
org.apache.geronimo.gbean.runtime.GBeanInstance.createInstance (GBeanInstance.java:936)
        at
org.apache.geronimo.gbean.runtime.GBeanInstanceState.attemptFullStart( GBeanInstanceState.java:267)
        at
org.apache.geronimo.gbean.runtime.GBeanInstanceState.start (GBeanInstanceState.java:102)
        at
org.apache.geronimo.gbean.runtime.GBeanInstanceState.startRecursive (GBeanInstanceState.java:124)
        at
org.apache.geronimo.gbean.runtime.GBeanInstance.startRecursive (GBeanInstance.java:543)
        at
org.apache.geronimo.kernel.basic.BasicKernel.startRecursiveGBean (BasicKernel.java:379)
        at
org.apache.geronimo.kernel.config.ConfigurationUtil.startConfiguration GBeans(ConfigurationUtil.java:434)
        at
org.apache.geronimo.kernel.config.KernelConfigurationManager.start (KernelConfigurationManager.java:188)
        at
org.apache.geronimo.kernel.config.SimpleConfigurationManager.startConf iguration(SimpleConfigurationManager.java:527)
        at
org.apache.geronimo.kernel.config.SimpleConfigurationManager.startConf iguration(SimpleConfigurationManager.java:508)
        at
org.apache.geronimo.kernel.config.SimpleConfigurationManager$ $FastClassByCGLIB$$ce77a924.invoke(<generated>)
        at net.sf.cglib.reflect.FastMethod.invoke(FastMethod.java:53)
        at
org.apache.geronimo.gbean.runtime.FastMethodInvoker.invoke (FastMethodInvoker.java:38)
        at
org.apache.geronimo.gbean.runtime.GBeanOperation.invoke (GBeanOperation.java:127)
        at
org.apache.geronimo.gbean.runtime.GBeanInstance.invoke (GBeanInstance.java:855)
        at
org.apache.geronimo.kernel.basic.BasicKernel.invoke (BasicKernel.java:239)
        at
org.apache.geronimo.kernel.KernelGBean.invoke(KernelGBean.java:342)
        at
org.apache.geronimo.kernel.KernelGBean$$FastClassByCGLIB$ $1cccefc9.invoke(<generated>)
        at net.sf.cglib.reflect.FastMethod.invoke(FastMethod.java:53)
        at
org.apache.geronimo.gbean.runtime.FastMethodInvoker.invoke (FastMethodInvoker.java:38)
        at
org.apache.geronimo.gbean.runtime.GBeanOperation.invoke (GBeanOperation.java:127)
        at
org.apache.geronimo.gbean.runtime.GBeanInstance.invoke (GBeanInstance.java:855)
        at
org.apache.geronimo.kernel.basic.BasicKernel.invoke (BasicKernel.java:239)
        at
org.apache.geronimo.system.jmx.MBeanGBeanBridge.invoke (MBeanGBeanBridge.java:168)
        at
com.sun.jmx.mbeanserver.DynamicMetaDataImpl.invoke (DynamicMetaDataImpl.java:213) at com.sun.jmx.mbeanserver.MetaDataImpl.invoke (MetaDataImpl.java:220)
        at
com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke (DefaultMBeanServerInterceptor.java:815)
        at
com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:784)
        at
javax.management.remote.rmi.RMIConnectionImpl.doOperation (RMIConnectionImpl.java:1408)
        at
javax.management.remote.rmi.RMIConnectionImpl.access$100 (RMIConnectionImpl.java:81)
        at
javax.management.remote.rmi.RMIConnectionImpl $PrivilegedOperation.run(RMIConnectionImpl.java:1245)
        at java.security.AccessController.doPrivileged(Native Method)
        at
javax.management.remote.rmi.RMIConnectionImpl.doPrivilegedOperation (RMIConnectionImpl.java:1348)
        at
javax.management.remote.rmi.RMIConnectionImpl.invoke (RMIConnectionImpl.java:782)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at
sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:39)
        at
sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:585)
        at
sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:294)
        at sun.rmi.transport.Transport$1.run(Transport.java:153)
        at java.security.AccessController.doPrivileged(Native Method)
        at sun.rmi.transport.Transport.serviceCall(Transport.java:149)
        at
sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java: 466)
        at
sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run (TCPTransport.java:707)
        at java.lang.Thread.run(Thread.java:595)





Reply via email to