quality@glassfish.java.net

Re: b65: suddenly ClassNotFoundException: oracle.sql.TIMESTAMP

From: Wouter van Reeven <wouter_at_van.reeven.nl>
Date: Tue, 29 Sep 2009 20:08:26 +0200

Hi Matthias,


Can you use ojdbc6.jar instead of ojdbc14.jar and see if that helps?
Also, can you post your persistence.xml so we can see how you configured
JPA?


Thanks, Wouter

On Tue, Sep 29, 2009 at 05:38:57PM +0200, matthias.fraass_at_tricoder.net wrote:
> Hi everyone,
>
> (I think) after upgrading via Update-Tool to b65, my Entities stopped working:
> Apparently there's a Problem with Oracle DB driver classes?
> I've debugged a bit: the results are returned by the DB, but when converting
> the data types, oracle.sql.TIMESTAMP cannot be found.
> I setup GF in debugging mode and hooked on the ClassNotFoundException. When it
> was caught, not even Class.forName("oracle.jdbc.driver.OracleDriver") was
> successful. But it *has* to be loaded by JPA/EclipseLink - otherwise
> Eclipselink woudln't start to parse the DB reply in
> "org.eclipse.persistence.platform.database.oracle.Oracle9Platform.convertObject
> (Oracle9Platform.java:280)", wouldn't it?
> Is this a felix classloader problem?
> Or did I miss some changes about lib/ext?
>
> I've deployed that successfully for weeks. It still works in my parallel GF v2
> setup.
> The oracle classes are in glassfish\domains\domain1\lib\ext\ojdbc14.jar.
>
> Here's the stacktrace:
>
> javax.ejb.EJBException
> at com.sun.ejb.containers.BaseContainer.processSystemException
> (BaseContainer.java:4943)
> at com.sun.ejb.containers.BaseContainer.completeNewTx(BaseContainer.java:4841)
> at com.sun.ejb.containers.BaseContainer.postInvokeTx(BaseContainer.java:4629)
> at com.sun.ejb.containers.BaseContainer.postInvoke(BaseContainer.java:1867)
> at com.sun.ejb.containers.BaseContainer.postInvoke(BaseContainer.java:1823)
> at com.sun.ejb.containers.EJBObjectInvocationHandler.invoke
> (EJBObjectInvocationHandler.java:208)
> at com.sun.ejb.containers.EJBObjectInvocationHandlerDelegate.invoke
> (EJBObjectInvocationHandlerDelegate.java:75)
> at $Proxy182.findItemoptioneffortById(Unknown Source)
> 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:597)
> at com.sun.corba.ee.impl.presentation.rmi.ReflectiveTie._invoke
> (ReflectiveTie.java:156)
> at
> com.sun.corba.ee.impl.protocol.CorbaServerRequestDispatcherImpl.dispatchToServant
> (CorbaServerRequestDispatcherImpl.java:682)
> at com.sun.corba.ee.impl.protocol.CorbaServerRequestDispatcherImpl.dispatch
> (CorbaServerRequestDispatcherImpl.java:216)
> at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleRequestRequest
> (CorbaMessageMediatorImpl.java:1831)
> at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleRequest
> (CorbaMessageMediatorImpl.java:1685)
> at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleInput
> (CorbaMessageMediatorImpl.java:1068)
> at com.sun.corba.ee.impl.protocol.giopmsgheaders.RequestMessage_1_2.callback
> (RequestMessage_1_2.java:221)
> at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleRequest
> (CorbaMessageMediatorImpl.java:787)
> at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.dispatch
> (CorbaMessageMediatorImpl.java:551)
> at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.doWork
> (CorbaMessageMediatorImpl.java:2548)
> at
> com.sun.corba.ee.impl.orbutil.threadpool.ThreadPoolImpl$WorkerThread.performWork
> (ThreadPoolImpl.java:492)
> at com.sun.corba.ee.impl.orbutil.threadpool.ThreadPoolImpl$WorkerThread.run
> (ThreadPoolImpl.java:527)
> Caused by: java.lang.NoClassDefFoundError: oracle/sql/TIMESTAMP
> at org.eclipse.persistence.internal.platform.database.oracle.TIMESTAMPTypes.
> <clinit>(TIMESTAMPTypes.java:22)
> at
> org.eclipse.persistence.platform.database.oracle.Oracle9Platform.convertObject
> (Oracle9Platform.java:280)
> at
> org.eclipse.persistence.mappings.foundation.AbstractDirectMapping.getAttributeValue
> (AbstractDirectMapping.java:642)
> at
> org.eclipse.persistence.mappings.foundation.AbstractDirectMapping.valueFromRow
> (AbstractDirectMapping.java:1185)
> at org.eclipse.persistence.mappings.DatabaseMapping.readFromRowIntoObject
> (DatabaseMapping.java:1219)
> at
> org.eclipse.persistence.internal.descriptors.ObjectBuilder.buildAttributesIntoObject
> (ObjectBuilder.java:329)
> at org.eclipse.persistence.internal.descriptors.ObjectBuilder.buildObject
> (ObjectBuilder.java:658)
> at
> org.eclipse.persistence.internal.descriptors.ObjectBuilder.buildWorkingCopyCloneNormally
> (ObjectBuilder.java:580)
> at
> org.eclipse.persistence.internal.descriptors.ObjectBuilder.buildObjectInUnitOfWork
> (ObjectBuilder.java:549)
> at org.eclipse.persistence.internal.descriptors.ObjectBuilder.buildObject
> (ObjectBuilder.java:489)
> at org.eclipse.persistence.internal.descriptors.ObjectBuilder.buildObject
> (ObjectBuilder.java:441)
> at org.eclipse.persistence.queries.ObjectLevelReadQuery.buildObject
> (ObjectLevelReadQuery.java:635)
> at org.eclipse.persistence.queries.ObjectLevelReadQuery.conformIndividualResult
> (ObjectLevelReadQuery.java:799)
> at org.eclipse.persistence.queries.ReadObjectQuery.conformResult
> (ReadObjectQuery.java:346)
> at org.eclipse.persistence.queries.ReadObjectQuery.registerResultInUnitOfWork
> (ReadObjectQuery.java:720)
> at org.eclipse.persistence.queries.ReadObjectQuery.executeObjectLevelReadQuery
> (ReadObjectQuery.java:438)
> at org.eclipse.persistence.queries.ObjectLevelReadQuery.executeDatabaseQuery
> (ObjectLevelReadQuery.java:997)
> at org.eclipse.persistence.queries.DatabaseQuery.execute
> (DatabaseQuery.java:670)
> at org.eclipse.persistence.queries.ObjectLevelReadQuery.execute
> (ObjectLevelReadQuery.java:958)
> at org.eclipse.persistence.queries.ReadObjectQuery.execute
> (ReadObjectQuery.java:399)
> at org.eclipse.persistence.queries.ObjectLevelReadQuery.executeInUnitOfWork
> (ObjectLevelReadQuery.java:1021)
> at
> org.eclipse.persistence.internal.sessions.UnitOfWorkImpl.internalExecuteQuery
> (UnitOfWorkImpl.java:2864)
> at org.eclipse.persistence.internal.sessions.AbstractSession.executeQuery
> (AbstractSession.java:1208)
> at org.eclipse.persistence.internal.sessions.AbstractSession.executeQuery
> (AbstractSession.java:1190)
> at org.eclipse.persistence.internal.sessions.AbstractSession.executeQuery
> (AbstractSession.java:1150)
> at org.eclipse.persistence.internal.jpa.EntityManagerImpl.executeQuery
> (EntityManagerImpl.java:646)
> at org.eclipse.persistence.internal.jpa.EntityManagerImpl.findInternal
> (EntityManagerImpl.java:590)
> at org.eclipse.persistence.internal.jpa.EntityManagerImpl.find
> (EntityManagerImpl.java:494)
> at org.eclipse.persistence.internal.jpa.EntityManagerImpl.find
> (EntityManagerImpl.java:373)
> at com.sun.enterprise.container.common.impl.EntityManagerWrapper.find
> (EntityManagerWrapper.java:311)
> at de.osp.test.jpa.SomeBean.findItemoptioneffortById(SomeBean.java:42)
> 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:597)
> at org.glassfish.ejb.security.application.EJBSecurityManager.runMethod
> (EJBSecurityManager.java:1038)
> at org.glassfish.ejb.security.application.EJBSecurityManager.invoke
> (EJBSecurityManager.java:1110)
> at com.sun.ejb.containers.BaseContainer.invokeBeanMethod
> (BaseContainer.java:5116)
> at com.sun.ejb.EjbInvocation.invokeBeanMethod(EjbInvocation.java:610)
> at com.sun.ejb.containers.interceptors.AroundInvokeChainImpl.invokeNext
> (InterceptorManager.java:775)
> at com.sun.ejb.EjbInvocation.proceed(EjbInvocation.java:562)
> at com.sun.ejb.containers.interceptors.SystemInterceptorProxy.doAround
> (SystemInterceptorProxy.java:157)
> at com.sun.ejb.containers.interceptors.SystemInterceptorProxy.aroundInvoke
> (SystemInterceptorProxy.java:139)
> 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:597)
> at com.sun.ejb.containers.interceptors.AroundInvokeInterceptor.intercept
> (InterceptorManager.java:836)
> at com.sun.ejb.containers.interceptors.AroundInvokeChainImpl.invokeNext
> (InterceptorManager.java:775)
> at com.sun.ejb.containers.interceptors.InterceptorManager.intercept
> (InterceptorManager.java:349)
> at com.sun.ejb.containers.BaseContainer.__intercept(BaseContainer.java:5088)
> at com.sun.ejb.containers.BaseContainer.intercept(BaseContainer.java:5076)
> at com.sun.ejb.containers.EJBObjectInvocationHandler.invoke
> (EJBObjectInvocationHandler.java:201)
> ... 18 more
> Caused by: java.lang.ClassNotFoundException: oracle.sql.TIMESTAMP
> at org.apache.felix.framework.ModuleImpl.findClassOrResourceByDelegation
> (ModuleImpl.java:726)
> at org.apache.felix.framework.ModuleImpl.access$100(ModuleImpl.java:60)
> at org.apache.felix.framework.ModuleImpl$ModuleClassLoader.loadClass
> (ModuleImpl.java:1631)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
> at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
> ... 71 more
>
> Any suggestions?
>
> -Matthias
>

-- 
Veel shit is mest voor de toekomst.
[Unknown Source]
Skype: wvreeven
Facebook: wvreeven
Twitter: wvreeven