ClassCastException on JCA session start
andrey.samuleev Sep 16, 2013 7:10 AMI'm trying to use Modeshape's JCA resource adapter on WebSphere 8 AS.
I have deployed modeshape-jca-3.5.0.Final.rar, and configured 'repositoryURL' property to use configuration file:
{
"name": "JCA Test Repository",
"transactionMode": "auto",
"jndiName": "",
"workspaces": {
"predefined": ["test_workspace"],
"default": "default",
"allowCreation": true
},
"security": {
"anonymous": {
"roles": ["readonly", "readwrite", "admin"],
"useOnFailedLogin": false
}
},
"storage": {
"cacheName": "inf",
"cacheConfiguration": "infinispan-application.xml"
},
"query": {
"enabled": true,
"enableFullTextSearch": true,
"indexStorage": {
"type": "ram"
},
"indexing": {
"mode": "sync"
}
}
}
And following Infinispan configuration:
<infinispan
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="urn:infinispan:config:5.2 http://www.infinispan.org/schemas/infinispan-config-5.2.xsd"
xmlns="urn:infinispan:config:5.2">
<namedCache name="inf">
<transaction
transactionManagerLookupClass="org.infinispan.transaction.lookup.GenericTransactionManagerLookup"
transactionMode="TRANSACTIONAL"
lockingMode="OPTIMISTIC"
useSynchronization="true"
/>
</namedCache>
</infinispan>
Now I can get Repository instance by JNDI name 'jcr/datastore'. This instance have properties as in configuration file, such as name = 'JCA Test Repository'.
But when I'm trying to start session by invoking 'Repository.login()' it throws ClassCastException:
[9/16/13 13:34:35:584 EEST] 0000002a XATransaction E J2CA0027E: An exception occurred while invoking start on an XA Resource Adapter from DataSource jcr/datastore, within transaction ID {XidImpl: formatId(57415344), gtrid_length(36), bqual_length(54),
data(0000014126560cbf0000000119416ff0612d46159e8a98e8fff17fe30e23c197980bdf900000014126560cbf0000000119416ff0612d46159e8a98e8fff17fe30e23c197980bdf90000000010000000000000000000000000001)} : java.lang.ClassCastException: org.infinispan.transaction.TransactionTable incompatible with org.infinispan.transaction.xa.XaTransactionTable
at org.infinispan.transaction.xa.TransactionXaAdapter.<init>(TransactionXaAdapter.java:96)
at org.infinispan.CacheImpl.getXAResource(CacheImpl.java:766)
at org.modeshape.jcr.cache.document.LocalDocumentStore.xaResource(LocalDocumentStore.java:176)
at org.modeshape.jcr.JcrXaSession.delegate(JcrXaSession.java:53)
at org.modeshape.jcr.JcrXaSession.start(JcrXaSession.java:59)
at com.ibm.ejs.j2c.XATransactionWrapper.start(XATransactionWrapper.java:1475)
at com.ibm.ws.Transaction.JTA.JTAResourceBase.start(JTAResourceBase.java:153)
at com.ibm.tx.jta.impl.RegisteredResources.startRes(RegisteredResources.java:1001)
at com.ibm.ws.tx.jta.RegisteredResources.enlistResource(RegisteredResources.java:1113)
at com.ibm.ws.tx.jta.TransactionImpl.enlistResource(TransactionImpl.java:2185)
at com.ibm.tx.jta.impl.EmbeddableTranManagerSet.enlist(EmbeddableTranManagerSet.java:150)
at com.ibm.ejs.j2c.XATransactionWrapper.enlist(XATransactionWrapper.java:727)
at com.ibm.ejs.j2c.ConnectionManager.initializeForUOW(ConnectionManager.java:2064)
at com.ibm.ejs.j2c.ConnectionManager.involveMCInTran(ConnectionManager.java:1661)
at com.ibm.ejs.j2c.ConnectionManager.allocateConnection(ConnectionManager.java:1036)
at org.modeshape.jca.JcrRepositoryHandle.login(JcrRepositoryHandle.java:131)
at org.modeshape.jca.JcrRepositoryHandle.login(JcrRepositoryHandle.java:123)
at service_pak.DaoImpl.getSession(DaoImpl.java:34)
at service_pak.EJSLocal0SLDaoImpl_42d97f67.getSession(EJSLocal0SLDaoImpl_42d97f67.java)
at service_pak.ServiceImpl.getTransactionManager(ServiceImpl.java:82)
at service_pak.EJSLocal0SLServiceImpl_3d720e08.getTransactionManager(EJSLocal0SLServiceImpl_3d720e08.java)
at integtation.IntegrationWebServiceImpl.getTransactionManagerClassName(IntegrationWebServiceImpl.java:49)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:60)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)
at java.lang.reflect.Method.invoke(Method.java:611)
at org.apache.axis2.jaxws.server.dispatcher.JavaDispatcher.invokeTargetOperation(JavaDispatcher.java:101)
at com.ibm.ws.websvcs.server.dispatcher.EJBBeanDispatcher.invokeTargetOperation(EJBBeanDispatcher.java:192)
at org.apache.axis2.jaxws.server.dispatcher.JavaBeanDispatcher.invoke(JavaBeanDispatcher.java:118)
at com.ibm.ws.websvcs.server.dispatcher.EJBBeanDispatcher.invoke(EJBBeanDispatcher.java:80)
at org.apache.axis2.jaxws.server.EndpointController.invoke(EndpointController.java:111)
at org.apache.axis2.jaxws.server.JAXWSMessageReceiver.receive(JAXWSMessageReceiver.java:161)
at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:208)
at org.apache.axis2.transport.http.HTTPTransportUtils.processHTTPPostRequest(HTTPTransportUtils.java:172)
at com.ibm.ws.websvcs.transport.http.WASAxis2Servlet.doPost(WASAxis2Servlet.java:1517)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:595)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:668)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1224)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:774)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:456)
at com.ibm.ws.webcontainer.servlet.ServletWrapperImpl.handleRequest(ServletWrapperImpl.java:178)
at com.ibm.ws.webcontainer.filter.WebAppFilterManager.invokeFilters(WebAppFilterManager.java:1032)
at com.ibm.ws.webcontainer.servlet.CacheServletWrapper.handleRequest(CacheServletWrapper.java:87)
at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:895)
at com.ibm.ws.webcontainer.WSWebContainer.handleRequest(WSWebContainer.java:1662)
at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:195)
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:452)
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewRequest(HttpInboundLink.java:511)
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.processRequest(HttpInboundLink.java:305)
at com.ibm.ws.http.channel.inbound.impl.HttpICLReadCallback.complete(HttpICLReadCallback.java:83)
at com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java:165)
at com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:217)
at com.ibm.io.async.AsyncChannelFuture.fireCompletionActions(AsyncChannelFuture.java:161)
at com.ibm.io.async.AsyncFuture.completed(AsyncFuture.java:138)
at com.ibm.io.async.ResultHandler.complete(ResultHandler.java:204)
at com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.java:775)
at com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:905)
at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1690)
.
[9/16/13 13:34:35:594 EEST] 0000002a RegisteredRes E WTRN0078E: An attempt by the transaction manager to call start on a transactional resource has resulted in an error. The error code was XAER_RMFAIL. The exception stack trace follows: javax.transaction.xa.XAException
at com.ibm.ejs.j2c.XATransactionWrapper.start(XATransactionWrapper.java:1512)
at com.ibm.ws.Transaction.JTA.JTAResourceBase.start(JTAResourceBase.java:153)
at com.ibm.tx.jta.impl.RegisteredResources.startRes(RegisteredResources.java:1001)
at com.ibm.ws.tx.jta.RegisteredResources.enlistResource(RegisteredResources.java:1113)
at com.ibm.ws.tx.jta.TransactionImpl.enlistResource(TransactionImpl.java:2185)
at com.ibm.tx.jta.impl.EmbeddableTranManagerSet.enlist(EmbeddableTranManagerSet.java:150)
at com.ibm.ejs.j2c.XATransactionWrapper.enlist(XATransactionWrapper.java:727)
at com.ibm.ejs.j2c.ConnectionManager.initializeForUOW(ConnectionManager.java:2064)
at com.ibm.ejs.j2c.ConnectionManager.involveMCInTran(ConnectionManager.java:1661)
at com.ibm.ejs.j2c.ConnectionManager.allocateConnection(ConnectionManager.java:1036)
at org.modeshape.jca.JcrRepositoryHandle.login(JcrRepositoryHandle.java:131)
at org.modeshape.jca.JcrRepositoryHandle.login(JcrRepositoryHandle.java:123)
at service_pak.DaoImpl.getSession(DaoImpl.java:34)
at service_pak.EJSLocal0SLDaoImpl_42d97f67.getSession(EJSLocal0SLDaoImpl_42d97f67.java)
at service_pak.ServiceImpl.getTransactionManager(ServiceImpl.java:82)
at service_pak.EJSLocal0SLServiceImpl_3d720e08.getTransactionManager(EJSLocal0SLServiceImpl_3d720e08.java)
at integtation.IntegrationWebServiceImpl.getTransactionManagerClassName(IntegrationWebServiceImpl.java:49)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:60)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)
at java.lang.reflect.Method.invoke(Method.java:611)
at org.apache.axis2.jaxws.server.dispatcher.JavaDispatcher.invokeTargetOperation(JavaDispatcher.java:101)
at com.ibm.ws.websvcs.server.dispatcher.EJBBeanDispatcher.invokeTargetOperation(EJBBeanDispatcher.java:192)
at org.apache.axis2.jaxws.server.dispatcher.JavaBeanDispatcher.invoke(JavaBeanDispatcher.java:118)
at com.ibm.ws.websvcs.server.dispatcher.EJBBeanDispatcher.invoke(EJBBeanDispatcher.java:80)
at org.apache.axis2.jaxws.server.EndpointController.invoke(EndpointController.java:111)
at org.apache.axis2.jaxws.server.JAXWSMessageReceiver.receive(JAXWSMessageReceiver.java:161)
at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:208)
at org.apache.axis2.transport.http.HTTPTransportUtils.processHTTPPostRequest(HTTPTransportUtils.java:172)
at com.ibm.ws.websvcs.transport.http.WASAxis2Servlet.doPost(WASAxis2Servlet.java:1517)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:595)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:668)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1224)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:774)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:456)
at com.ibm.ws.webcontainer.servlet.ServletWrapperImpl.handleRequest(ServletWrapperImpl.java:178)
at com.ibm.ws.webcontainer.filter.WebAppFilterManager.invokeFilters(WebAppFilterManager.java:1032)
at com.ibm.ws.webcontainer.servlet.CacheServletWrapper.handleRequest(CacheServletWrapper.java:87)
at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:895)
at com.ibm.ws.webcontainer.WSWebContainer.handleRequest(WSWebContainer.java:1662)
at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:195)
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:452)
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewRequest(HttpInboundLink.java:511)
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.processRequest(HttpInboundLink.java:305)
at com.ibm.ws.http.channel.inbound.impl.HttpICLReadCallback.complete(HttpICLReadCallback.java:83)
at com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java:165)
at com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:217)
at com.ibm.io.async.AsyncChannelFuture.fireCompletionActions(AsyncChannelFuture.java:161)
at com.ibm.io.async.AsyncFuture.completed(AsyncFuture.java:138)
at com.ibm.io.async.ResultHandler.complete(ResultHandler.java:204)
at com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.java:775)
at com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:905)
at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1690)
Caused by: java.lang.ClassCastException: org.infinispan.transaction.TransactionTable incompatible with org.infinispan.transaction.xa.XaTransactionTable
at org.infinispan.transaction.xa.TransactionXaAdapter.<init>(TransactionXaAdapter.java:96)
at org.infinispan.CacheImpl.getXAResource(CacheImpl.java:766)
at org.modeshape.jcr.cache.document.LocalDocumentStore.xaResource(LocalDocumentStore.java:176)
at org.modeshape.jcr.JcrXaSession.delegate(JcrXaSession.java:53)
at org.modeshape.jcr.JcrXaSession.start(JcrXaSession.java:59)
at com.ibm.ejs.j2c.XATransactionWrapper.start(XATransactionWrapper.java:1475)
... 52 more
[9/16/13 13:34:35:602 EEST] 0000002a XATransaction E J2CA0030E: Method enlist caught javax.transaction.SystemException: XAResource start association error:XAER_RMFAIL
at com.ibm.tx.jta.impl.RegisteredResources.startRes(RegisteredResources.java:1052)
at com.ibm.ws.tx.jta.RegisteredResources.enlistResource(RegisteredResources.java:1113)
at com.ibm.ws.tx.jta.TransactionImpl.enlistResource(TransactionImpl.java:2185)
at com.ibm.tx.jta.impl.EmbeddableTranManagerSet.enlist(EmbeddableTranManagerSet.java:150)
at com.ibm.ejs.j2c.XATransactionWrapper.enlist(XATransactionWrapper.java:727)
at com.ibm.ejs.j2c.ConnectionManager.initializeForUOW(ConnectionManager.java:2064)
at com.ibm.ejs.j2c.ConnectionManager.involveMCInTran(ConnectionManager.java:1661)
at com.ibm.ejs.j2c.ConnectionManager.allocateConnection(ConnectionManager.java:1036)
at org.modeshape.jca.JcrRepositoryHandle.login(JcrRepositoryHandle.java:131)
at org.modeshape.jca.JcrRepositoryHandle.login(JcrRepositoryHandle.java:123)
at service_pak.DaoImpl.getSession(DaoImpl.java:34)
at service_pak.EJSLocal0SLDaoImpl_42d97f67.getSession(EJSLocal0SLDaoImpl_42d97f67.java)
at service_pak.ServiceImpl.getTransactionManager(ServiceImpl.java:82)
at service_pak.EJSLocal0SLServiceImpl_3d720e08.getTransactionManager(EJSLocal0SLServiceImpl_3d720e08.java)
at integtation.IntegrationWebServiceImpl.getTransactionManagerClassName(IntegrationWebServiceImpl.java:49)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:60)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)
at java.lang.reflect.Method.invoke(Method.java:611)
at org.apache.axis2.jaxws.server.dispatcher.JavaDispatcher.invokeTargetOperation(JavaDispatcher.java:101)
at com.ibm.ws.websvcs.server.dispatcher.EJBBeanDispatcher.invokeTargetOperation(EJBBeanDispatcher.java:192)
at org.apache.axis2.jaxws.server.dispatcher.JavaBeanDispatcher.invoke(JavaBeanDispatcher.java:118)
at com.ibm.ws.websvcs.server.dispatcher.EJBBeanDispatcher.invoke(EJBBeanDispatcher.java:80)
at org.apache.axis2.jaxws.server.EndpointController.invoke(EndpointController.java:111)
at org.apache.axis2.jaxws.server.JAXWSMessageReceiver.receive(JAXWSMessageReceiver.java:161)
at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:208)
at org.apache.axis2.transport.http.HTTPTransportUtils.processHTTPPostRequest(HTTPTransportUtils.java:172)
at com.ibm.ws.websvcs.transport.http.WASAxis2Servlet.doPost(WASAxis2Servlet.java:1517)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:595)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:668)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1224)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:774)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:456)
at com.ibm.ws.webcontainer.servlet.ServletWrapperImpl.handleRequest(ServletWrapperImpl.java:178)
at com.ibm.ws.webcontainer.filter.WebAppFilterManager.invokeFilters(WebAppFilterManager.java:1032)
at com.ibm.ws.webcontainer.servlet.CacheServletWrapper.handleRequest(CacheServletWrapper.java:87)
at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:895)
at com.ibm.ws.webcontainer.WSWebContainer.handleRequest(WSWebContainer.java:1662)
at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:195)
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:452)
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewRequest(HttpInboundLink.java:511)
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.processRequest(HttpInboundLink.java:305)
at com.ibm.ws.http.channel.inbound.impl.HttpICLReadCallback.complete(HttpICLReadCallback.java:83)
at com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java:165)
at com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:217)
at com.ibm.io.async.AsyncChannelFuture.fireCompletionActions(AsyncChannelFuture.java:161)
at com.ibm.io.async.AsyncFuture.completed(AsyncFuture.java:138)
at com.ibm.io.async.ResultHandler.complete(ResultHandler.java:204)
at com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.java:775)
at com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:905)
at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1690)
Caused by: javax.transaction.xa.XAException
at com.ibm.ejs.j2c.XATransactionWrapper.start(XATransactionWrapper.java:1512)
at com.ibm.ws.Transaction.JTA.JTAResourceBase.start(JTAResourceBase.java:153)
at com.ibm.tx.jta.impl.RegisteredResources.startRes(RegisteredResources.java:1001)
... 50 more
Caused by: java.lang.ClassCastException: org.infinispan.transaction.TransactionTable incompatible with org.infinispan.transaction.xa.XaTransactionTable
at org.infinispan.transaction.xa.TransactionXaAdapter.<init>(TransactionXaAdapter.java:96)
at org.infinispan.CacheImpl.getXAResource(CacheImpl.java:766)
at org.modeshape.jcr.cache.document.LocalDocumentStore.xaResource(LocalDocumentStore.java:176)
at org.modeshape.jcr.JcrXaSession.delegate(JcrXaSession.java:53)
at org.modeshape.jcr.JcrXaSession.start(JcrXaSession.java:59)
at com.ibm.ejs.j2c.XATransactionWrapper.start(XATransactionWrapper.java:1475)
... 52 more
while trying to enlist resources from DataSource jcr/datastore with the Transaction Manager for the current transaction, and threw a ResourceException.
Where am I wrong?
Thanks in advance.