What you're missing here is the JCA (Client) Connection class can be
any class. JCA has no requirements for this class. Probably, you
should use the CICSSocket wrapper as your Connection class.
Your ManagedConnectionFactory class could then construct an instance
of the CICSSocket wrapper and open the socket in its
createManagedConnection() method, using parameters from your (Client)
Connection Factory. The Connection Factory has parameters set as a
JavaBean.
The App Server (AS) doesn't call methods in the (Client) Connection
instance; it doesn't even see it. The client application retrieves the
Connection instance with a specific method in the (Client) Connection
Factory. The client normally retrieves the Connection Factory instance
through JNDI and then casts it to the specific Connection Factory
class (for your Resource Adapter).
See my article in JDJ Online -- "Understanding JCA" (
http://sys-
con.com/story/?storyid=46283&de=1). It initially discusses JDBC but
does provide a blueprint for a general Resource Adapter. There is not
much code, but it does show the code for how a client application
retrieves a Client Connection instance (of any type) through JNDI.
Hi
Well, I did my resource adaptar defined as follows:
--------------------------------------
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE connector PUBLIC '-//Sun Microsystems, Inc.//DTD Connector
1.0//EN' '
http://java.sun.com/dtd/connector_1_0.dtd'>
<connector>
<display-name>CometResourceAdapter</display-name>
<vendor-name>BancSabadell</vendor-name>
<spec-version>1.5</spec-version>
<eis-type>CicsSocket</eis-type>
<version>1.0</version>
<resourceadapter>
<managedconnectionfactory-
class>com.bs.cds.jca.CdsManagedConnectionFactoryImpl</
managedconnectionfactory-class>
<connectionfactory-interface>javax.resource.cci.ConnectionFactory</
connectionfactory-interface>
<connectionfactory-impl-
class>com.bs.cds.jca.CdsConnectionFactoryImpl</connectionfactory-impl-
class>
<connection-interface>javax.resource.cci.Connection</connection-
interface>
<connection-impl-class>com.bs.cds.jca.CdsConnection</connection-impl-
class>
<transaction-support>NoTransaction</transaction-support>
</resourceadapter>
</connector>
----------------------------------
But when I deployed in my JBoss I receive the error:
-------------------------
org.jboss.deployment.DeploymentException: Error parsing meta data
jar:file:/D:/j
boss/server/jcara/tmp/deploy/tmp34080com.bs.cds.jca.ra-0.0.1.rar!/META-
INF/ra.xm
l; - nested throwable: (org.jboss.xb.binding.JBossXBException: Failed
to parse s
ource.)
at
org.jboss.deployment.DeploymentException.rethrowAsDeploymentException
(DeploymentException.java:39)
at
org.jboss.deployment.ObjectModelFactorySimpleSubDeployerSupport.parse
MetaData(ObjectModelFactorySimpleSubDeployerSupport.java:41)
at
org.jboss.deployment.SimpleSubDeployerSupport.init(SimpleSubDeployerS
upport.java:73)
at org.jboss.deployment.MainDeployer.init(MainDeployer.java:
843)
at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:
780)
at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:
753)
at sun.reflect.GeneratedMethodAccessor49.invoke(Unknown
Source)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at
org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatch
er.java:141)
at org.jboss.mx.server.Invocation.dispatch(Invocation.java:80)
at
org.jboss.mx.interceptor.AbstractInterceptor.invoke(AbstractIntercept
or.java:118)
at org.jboss.mx.server.Invocation.invoke(Invocation.java:74)
at
org.jboss.mx.interceptor.ModelMBeanOperationInterceptor.invoke(ModelM
BeanOperationInterceptor.java:127)
at org.jboss.mx.server.Invocation.invoke(Invocation.java:74)
at
org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.
java:245)
at
org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:644)
at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:
176)
at $Proxy9.deploy(Unknown Source)
at
org.jboss.deployment.scanner.URLDeploymentScanner.deploy(URLDeploymen
tScanner.java:319)
at
org.jboss.deployment.scanner.URLDeploymentScanner.scan(URLDeploymentS
canner.java:507)
at org.jboss.deployment.scanner.AbstractDeploymentScanner
$ScannerThread.
doScan(AbstractDeploymentScanner.java:192)
at
org.jboss.deployment.scanner.AbstractDeploymentScanner.startService(A
bstractDeploymentScanner.java:265)
at
org.jboss.system.ServiceMBeanSupport.jbossInternalStart(ServiceMBeanS
upport.java:274)
at
org.jboss.system.ServiceMBeanSupport.jbossInternalLifecycle(ServiceMB
eanSupport.java:230)
at sun.reflect.GeneratedMethodAccessor2.invoke(Unknown Source)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at
org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatch
er.java:141)
at org.jboss.mx.server.Invocation.dispatch(Invocation.java:80)
at org.jboss.mx.server.Invocation.invoke(Invocation.java:72)
at
org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.
java:245)
at
org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:644)
at org.jboss.system.ServiceController
$ServiceProxy.invoke(ServiceControl
ler.java:943)
at $Proxy0.start(Unknown Source)
at
org.jboss.system.ServiceController.start(ServiceController.java:428)
at sun.reflect.GeneratedMethodAccessor9.invoke(Unknown Source)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at
org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatch
er.java:141)
at org.jboss.mx.server.Invocation.dispatch(Invocation.java:80)
at org.jboss.mx.server.Invocation.invoke(Invocation.java:72)
at
org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.
java:245)
at
org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:644)
at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:
176)
at $Proxy4.start(Unknown Source)
at org.jboss.deployment.SARDeployer.start(SARDeployer.java:
285)
at org.jboss.deployment.MainDeployer.start(MainDeployer.java:
989)
at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:
790)
at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:
753)
at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:
737)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at
org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatch
er.java:141)
at org.jboss.mx.server.Invocation.dispatch(Invocation.java:80)
at
org.jboss.mx.interceptor.AbstractInterceptor.invoke(AbstractIntercept
or.java:118)
at org.jboss.mx.server.Invocation.invoke(Invocation.java:74)
at
org.jboss.mx.interceptor.ModelMBeanOperationInterceptor.invoke(ModelM
BeanOperationInterceptor.java:127)
at org.jboss.mx.server.Invocation.invoke(Invocation.java:74)
at
org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.
java:245)
at
org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:644)
at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:
176)
at $Proxy5.deploy(Unknown Source)
at org.jboss.system.server.ServerImpl.doStart(ServerImpl.java:
453)
at org.jboss.system.server.ServerImpl.start(ServerImpl.java:
330)
at org.jboss.Main.boot(Main.java:187)
at org.jboss.Main$1.run(Main.java:438)
at java.lang.Thread.run(Thread.java:619)
Caused by: org.jboss.xb.binding.JBossXBException: Failed to parse
source.
at
org.jboss.xb.binding.parser.sax.SaxJBossXBParser.parse(SaxJBossXBPars
er.java:125)
at
org.jboss.xb.binding.UnmarshallerImpl.unmarshal(UnmarshallerImpl.java
:150)
at
org.jboss.deployment.ObjectModelFactorySimpleSubDeployerSupport.parse
MetaData(ObjectModelFactorySimpleSubDeployerSupport.java:37)
... 68 more
Caused by: java.lang.IllegalArgumentException: Unknown connector
newChild: nuri=
localName=managedconnectionfactory-class
attrs=org.apache.xerces.parsers.Abstra
ctSAXParser$AttributesProxy@cc9d70
at
org.jboss.resource.deployment.ResourceAdapterObjectModelFactory.newCh
ild(ResourceAdapterObjectModelFactory.java:162)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at
org.jboss.xb.binding.ObjectModelBuilder.invokeFactory(ObjectModelBuil
der.java:421)
at
org.jboss.xb.binding.DelegatingObjectModelFactory.newChild(Delegating
ObjectModelFactory.java:78)
at
org.jboss.xb.binding.ObjectModelBuilder.startElement(ObjectModelBuild
er.java:323)
at org.jboss.xb.binding.parser.sax.SaxJBossXBParser
$DelegatingContentHan
dler.startElement(SaxJBossXBParser.java:217)
at
org.apache.xerces.parsers.AbstractSAXParser.startElement(Unknown Sour
ce)
at
org.apache.xerces.impl.dtd.XMLDTDValidator.startElement(Unknown Sourc
e)
at
org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanStartElement(Unkn
own Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl
$FragmentContent
Dispatcher.dispatch(Unknown Source)
at
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Un
known Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown
Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown
Source)
at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown
Source)
at org.apache.xerces.jaxp.SAXParserImpl
$JAXPSAXParser.parse(Unknown Sour
ce)
at
org.jboss.xb.binding.parser.sax.SaxJBossXBParser.parse(SaxJBossXBPars
er.java:121)
... 70 more
-------------------------
I wonder if someone could give me a clue about the origin of the
problem. I think my ra.xml is well defined and my
managedconnectionfactory-class too.
Thanks in advance
J