Используя openjpa 1.2.0 со встроенным DataCache на Glassfish, позволяя кешировать запросы и закреплять некоторые именованные очереди, мы видим следующее исключение:
org.apache.openjpa.persistence.PersistenceException: java.lang.String нельзя преобразовать в org.apache.openjpa.datacache.QueryKey
У кого-нибудь есть идеи?
Полный дамп исключения:
[# | 2011-05-01T11: 43: 05.728-0500 | ПРЕДУПРЕЖДЕНИЕ | ВС-appserver9.1 | javax.enterprise.system.core.transaction | _ThreadID = 30; _ThreadName = httpSSLWorkerThread-20393-0; _RequestID = 3ce3425f-cd4b -42b9-a305-570c5745add7; | JTS5054: после завершения произошла непредвиденная ошибка
org.apache.openjpa.persistence.PersistenceException: java.lang.Object нельзя преобразовать в org.apache.openjpa.datacache.QueryKey
в org.apache.openjpa.kernel.BrokerImpl.afterCompletion (BrokerImpl.java:1870)
в com.sun.jts.jta.SynchronizationImpl.after_completion (SynchronizationImpl.java:154)
в com.sun.jts.CosTransactions.RegisteredSyncs.distributeAfter (RegisteredSyncs.java:210)
в com.sun.jts.CosTransactions.TopCoordinator.afterCompletion (TopCoordinator.java:2585)
на com.sun.jts.CosTransactions.CoordinatorTerm.commit (CoordinatorTerm.java:433)
на com.sun.jts.CosTransactions.TerminatorImpl.commit (TerminatorImpl.java:249)
на com.sun.jts.CosTransactions.CurrentImpl.commit (CurrentImpl.java:623)
на com.sun.jts.jta.TransactionManagerImpl.commit (TransactionManagerImpl.java:309)
в com.sun.enterprise.distributedtx.J2EETransactionManagerImpl.commit (J2EETransactionManagerImpl.java:1030)
в com.sun.enterprise.distributedtx.J2EETransactionManagerOpt.commit (J2EETransactionManagerOpt.java:397)
на com.sun.ejb.containers.BaseContainer.completeNewTx (BaseContainer.java:3792)
на com.sun.ejb.containers.BaseContainer.postInvokeTx (BaseContainer.java:3571)
на com.sun.ejb.containers.WebServiceInvocationHandler.invoke (WebServiceInvocationHandler.java:200)
на $ Proxy973.transfer (Неизвестный источник)
at sun.reflect.NativeMethodAccessorImpl.invoke0 (собственный метод)
at sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:25)
в java.lang.reflect.Method.invoke (Method.java:597)
на com.sun.enterprise.webservice.InvokerImpl.invoke (InvokerImpl.java:81)
на com.sun.enterprise.webservice.EjbInvokerImpl.invoke (EjbInvokerImpl.java:82)
на com.sun.xml.ws.server.InvokerTube $ 2.invoke (InvokerTube.java:146)
в com.sun.xml.ws.server.sei.EndpointMethodHandler.invoke (EndpointMethodHandler.java:257)
на com.sun.xml.ws.server.sei.SEIInvokerTube.processRequest (SEIInvokerTube.java:93)
на com.sun.xml.ws.api.pipe.Fiber .__ doRun (Fiber.java:595)
на com.sun.xml.ws.api.pipe.Fiber. doRun (Fiber.java:554)
на com.sun.xml.ws.api.pipe.Fiber.doRun (Fiber.java:539)
на com.sun.xml.ws.api.pipe.Fiber.runSync (Fiber.java:436)
на com.sun.xml.ws.api.pipe.helper.AbstractTubeImpl.process (AbstractTubeImpl.java:106)
в com.sun.enterprise.webservice.MonitoringPipe.process (MonitoringPipe.java:147)
в com.sun.xml.ws.api.pipe.helper.PipeAdapter.processRequest (PipeAdapter.java:115)
на com.sun.xml.ws.api.pipe.Fiber. _doRun (Fiber.java:595)
на com.sun.xml.ws.api.pipe.Fiber. doRun (Fiber.java:554)
на com.sun.xml.ws.api.pipe.Fiber.doRun (Fiber.java:539)
на com.sun.xml.ws.api.pipe.Fiber.runSync (Fiber.java:436)
на com.sun.xml.ws.api.pipe.helper.AbstractTubeImpl.process (AbstractTubeImpl.java:106)
в com.sun.xml.ws.tx.service.TxServerPipe.process (TxServerPipe.java:317)
в com.sun.enterprise.webservice.CommonServerSecurityPipe.processRequest (CommonServerSecurityPipe.java:218)
в com.sun.enterprise.webservice.CommonServerSecurityPipe.process (CommonServerSecurityPipe.java:129)в com.sun.xml.ws.api.pipe.helper.PipeAdapter.processRequest (PipeAdapter.java:115)
на com.sun.xml.ws.api.pipe.Fiber. _doRun (Fiber.java:595)
на com.sun.xml.ws.api.pipe.Fiber._doRun (Fiber.java:554)
на com.sun.xml.ws.api.pipe.Fiber.doRun (Fiber.java:539)
на com.sun.xml.ws.api.pipe.Fiber.runSync (Fiber.java:436)
в com.sun.xml.ws.server.WSEndpointImpl $ 2.process (WSEndpointImpl.java:243)
в com.sun.xml.ws.transport.http.HttpAdapter $ HttpToolkit.handle (HttpAdapter.java:444)
на com.sun.xml.ws.transport.http.HttpAdapter.handle (HttpAdapter.java:244)
в com.sun.xml.ws.transport.http.servlet.ServletAdapter.handle (ServletAdapter.java:135)
в com.sun.enterprise.webservice.Ejb3MessageDispatcher.handlePost (Ejb3MessageDispatcher.java:113)
в com.sun.enterprise.webservice.Ejb3MessageDispatcher.invoke (Ejb3MessageDispatcher.java:87)
в com.sun.enterprise.webservice.EjbWebServiceServlet.dispatchToEjbEndpoint (EjbWebServiceServlet.java:226)
на com.sun.enterprise.webservice.EjbWebServiceServlet.service (EjbWebServiceServlet.java:155)
на javax.servlet.http.HttpServlet.service (HttpServlet.java:831)
на com.sun.enterprise.web.AdHocContextValve.invoke (AdHocContextValve.java:114)
в org.apache.catalina.core.StandardPipeline.doInvoke (StandardPipeline.java:632)
в org.apache.catalina.core.StandardPipeline.doInvoke (StandardPipeline.java:577)
в org.apache.catalina.core.StandardPipeline.invoke (StandardPipeline.java:571)
на com.sun.enterprise.web.WebPipeline.invoke (WebPipeline.java:87)
в org.apache.catalina.core.StandardHostValve.invoke (StandardHostValve.java:206)
в org.apache.catalina.core.StandardPipeline.doInvoke (StandardPipeline.java:632)
в org.apache.catalina.core.StandardPipeline.doInvoke (StandardPipeline.java:577)
в org.apache.catalina.core.StandardPipeline.invoke (StandardPipeline.java:571)
в org.apache.catalina.core.ContainerBase.invoke (ContainerBase.java:1080)
в org.apache.catalina.core.StandardEngineValve.invoke (StandardEngineValve.java:150)
в org.apache.catalina.core.StandardPipeline.doInvoke (StandardPipeline.java:632)
в org.apache.catalina.core.StandardPipeline.doInvoke (StandardPipeline.java:577)
в org.apache.catalina.core.StandardPipeline.invoke (StandardPipeline.java:571)
в org.apache.catalina.core.ContainerBase.invoke (ContainerBase.java:1080)
на org.apache.coyote.tomcat5.CoyoteAdapter.service (CoyoteAdapter.java:272)
в com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.invokeAdapter (DefaultProcessorTask.java:637)
в com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.doProcess (DefaultProcessorTask.java:568)
в com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.process (DefaultProcessorTask.java:813)
в com.sun.enterprise.web.connector.grizzly.DefaultReadTask.executeProcessorTask (DefaultReadTask.java:341)
на com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask (DefaultReadTask.java:263)
на com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask (DefaultReadTask.java:214)
на com.sun.enterprise.web.connector.grizzly.TaskBase.run (TaskBase.java:265)
на com.sun.enterprise.web.connector.grizzly.ssl.SSLWorkerThread.run (SSLWorkerThread.java:106)
Причина: java.lang.ClassCastException: java.lang.Object не может быть приведен к org.apache.openjpa.datacache.QueryKey
в org.apache.openjpa.datacache.AbstractQueryCache.onTypesChanged (AbstractQueryCache.java:85)
в org.apache.openjpa.datacache.DataCacheStoreManager.updateCaches (DataCacheStoreManager.java:252)
в org.apache.openjpa.datacache.DataCacheStoreManager.commit (DataCacheStoreManager.java:90)
в org.apache.openjpa.kernel.DelegatingStoreManager.commit (DelegatingStoreManager.java:94)в org.apache.openjpa.kernel.BrokerImpl.endStoreManagerTransaction (BrokerImpl.java:1308)
в org.apache.openjpa.kernel.BrokerImpl.endTransaction (BrokerImpl.java:2177)
в org.apache.openjpa.kernel.BrokerImpl.afterCompletion (BrokerImpl.java:1846)
... еще 75
| #]