I don't see what is wrong, everything looks correct to me. I would
investigate by stepping through
ConnectorModuleBuilder.getActivationSpecInfoMap in a debugger while
deploying the rar and
ConnectorModuleBuilder.locateActivationSpecInfo while deploying the mdb.
The first method puts the needed info about all the activation specs
into a gbean for later reference, and the second method retrieves it
when the mdb needs it.
thanks
david jencks
On Mar 9, 2006, at 7:06 AM, johnxmas wrote:
Thanks for your answer. But still stuck in problem
a) my Adapter configId (in geronimo-ra.xml) is ScortJcaAdapter15
b) following your advice, I added to my EAR the following geronimo-
application.xml
<?xml version="1.0" encoding="UTF-8"?>
<application xmlns="http://geronimo.apache.org/xml/ns/j2ee/
application"
configId="EARPlan"
parentId="ScortJcaAdapter15">
<module>
<ejb>inboundCustListMdb.jar</ejb>
<alt-dd>openejb-jar.xml</alt-dd>
</module>
</application>
c) and modified my openejb-jar.xml to change the parent
<openejb-jar
xmlns="http://www.openejb.org/xml/ns/openejb-jar"
xmlns:naming="http://geronimo.apache.org/xml/ns/naming"
xmlns:security="http://geronimo.apache.org/xml/ns/security"
xmlns:sys="http://geronimo.apache.org/xml/ns/deployment"
configId="ScortInboundCustListMdb" parentId="EARPlan">
<enterprise-beans>
<message-driven>
<ejb-name>ScortInboundCustListMdb</ejb-name>
<!--
<resource-adapter>
<target-
name>geronimo.server:J2EEApplication=null,J2EEServer=geronimo,JCAResou
rce=ScortJcaAdapter15,j2eeType=JCAResourceAdapter,name=ScortJcaAdapter
15</target-name>
</resource-adapter>
-->
<resource-adapter>
<resource-link>ScortJcaAdapter15</resource-link>
</resource-adapter>
<activation-config>
<activation-config-property>
<activation-config-property-name>id</activation-config-
property-name>
<activation-config-property-value>CUSTLIST</activation-
config-property-value>
</activation-config-property>
<activation-config-property>
<activation-config-property-name>port</activation-config-
property-name>
<activation-config-property-value>23072</activation-config-
property-value>
</activation-config-property>
</activation-config>
</message-driven>
</enterprise-beans>
</openejb-jar>
So, no more ClassNotFoundException
But (alas),
Geronimo Application Server started
15:58:38,228 INFO [Hot Deployer] Deploying
scortInboundMdbCustList.ear
15:58:40,931 ERROR [Hot Deployer] Unable to deploy: no activation
spec found for
resource adapter:
geronimo.server:J2EEApplication=null,J2EEServer=geronimo,JCAR
esource=ScortJcaAdapter15,j2eeType=JCAResourceAdapter,name=ScortJcaAda
pter15 and
message listener type: com.scort.inbound.jca.api.InboundListener
org.apache.geronimo.common.DeploymentException: no activation spec
found for res
ource adapter:
geronimo.server:J2EEApplication=null,J2EEServer=geronimo,JCAResou
rce=ScortJcaAdapter15,j2eeType=JCAResourceAdapter,name=ScortJcaAdapter
15 and mes
sage listener type: com.scort.inbound.jca.api.InboundListener
at
org.openejb.deployment.MdbBuilder.addActivationSpecWrapperGBean(MdbBu
ilder.java:247)
at org.openejb.deployment.MdbBuilder.buildBeans
(MdbBuilder.java:119)
at org.openejb.deployment.OpenEJBModuleBuilder.addGBeans
(OpenEJBModuleBu
ilder.java:533)
at org.openejb.deployment.OpenEJBModuleBuilder$
$FastClassByCGLIB$$11bd7b
20.invoke(<generated>)
at net.sf.cglib.reflect.FastMethod.invoke(FastMethod.java:53)
at
org.apache.geronimo.gbean.runtime.FastMethodInvoker.invoke(FastMethod
Invoker.java:38)
at org.apache.geronimo.gbean.runtime.GBeanOperation.invoke
(GBeanOperatio
n.java:118)
at org.apache.geronimo.gbean.runtime.GBeanInstance.invoke
(GBeanInstance.
java:800)
at org.apache.geronimo.gbean.runtime.RawInvoker.invoke
(RawInvoker.java:5
7)
at
org.apache.geronimo.kernel.basic.RawOperationInvoker.invoke(RawOperat
ionInvoker.java:36)
at
org.apache.geronimo.kernel.basic.ProxyMethodInterceptor.intercept(Pro
xyMethodInterceptor.java:96)
at org.apache.geronimo.j2ee.deployment.ModuleBuilder$
$EnhancerByCGLIB$$1
3ff1c22.addGBeans(<generated>)
at
org.apache.geronimo.j2ee.deployment.EARConfigBuilder.buildConfigurati
on(EARConfigBuilder.java:402)
at org.apache.geronimo.j2ee.deployment.EARConfigBuilder$
$FastClassByCGLI
B$$38e56ec6.invoke(<generated>)
at net.sf.cglib.reflect.FastMethod.invoke(FastMethod.java:53)
at
org.apache.geronimo.gbean.runtime.FastMethodInvoker.invoke(FastMethod
Invoker.java:38)
at org.apache.geronimo.gbean.runtime.GBeanOperation.invoke
(GBeanOperatio
n.java:118)
at org.apache.geronimo.gbean.runtime.GBeanInstance.invoke
(GBeanInstance.
java:800)
at org.apache.geronimo.gbean.runtime.RawInvoker.invoke
(RawInvoker.java:5
7)
at
org.apache.geronimo.kernel.basic.RawOperationInvoker.invoke(RawOperat
ionInvoker.java:36)
at
org.apache.geronimo.kernel.basic.ProxyMethodInterceptor.intercept(Pro
xyMethodInterceptor.java:96)
at org.apache.geronimo.deployment.ConfigurationBuilder$
$EnhancerByCGLIB$
$1fec2494.buildConfiguration(<generated>)
at org.apache.geronimo.deployment.Deployer.deploy
(Deployer.java:269)
at org.apache.geronimo.deployment.Deployer.deploy
(Deployer.java:102)
at org.apache.geronimo.deployment.Deployer$$FastClassByCGLIB
$$734a235d.i
nvoke(<generated>)
at net.sf.cglib.reflect.FastMethod.invoke(FastMethod.java:53)
at
org.apache.geronimo.gbean.runtime.FastMethodInvoker.invoke(FastMethod
Invoker.java:38)
at org.apache.geronimo.gbean.runtime.GBeanOperation.invoke
(GBeanOperatio
n.java:118)
at org.apache.geronimo.gbean.runtime.GBeanInstance.invoke
(GBeanInstance.
java:835)
at org.apache.geronimo.kernel.basic.BasicKernel.invoke
(BasicKernel.java:
178)
at
org.apache.geronimo.deployment.plugin.local.AbstractDeployCommand.doD
eploy(AbstractDeployCommand.java:106)
at
org.apache.geronimo.deployment.plugin.local.DistributeCommand.run(Dis
tributeCommand.java:59)
at java.lang.Thread.run(Thread.java:534)
Jean-Noël
Hi,
U can create a EAR plan (geronimo-application.xml) that contains the
EJB plan (openejb-jar.xml).
The configIds and parentIds can be configured in such a way so
that dependencies
are resolved.
EAR plan : configID="EARPlan" ParentID="ScortJcaAdapter15"
EAR contains EJB plan(openejb-jar.xml) ConfigID="EJBPlan"
ParentID="EARPlan"
or
U can set parent of EJB plan to RA plan ConfigID="EJBPlan"
ParentID="ScortJcaAdapter15"
or
U can try configID for geronimo-ra.xml
<..... configId="myGroupId/myJCAAdapter/1.0/car"....>
and the ear should include the following import
<import>
<groupId>myGroupId</groupId>
<type>car</type>
<artifactId>myJCAAdapter</artifactId>
<version>1.0</version>
</import>
myGroupID and myJCAAdapter are names u can give for RA plan and are
used in import for EAR plan.
Regards
Krish
Regarding GroupID/Car these are
On 3/9/06, johnxmas <[EMAIL PROTECTED]> wrote:
On Mar 8, 2006, at 7:48 AM, johnxmas wrote:
Hi,
I deploy an Inbound Resource Adapter at server level (and, no I
don't want to include it in my ear). This RA
have all is classes in a jar (including the infamous
ActivationSpec :-D)
I deploy an EAR with a message-driven bean. And bingo, at
deployment time
[************************> ] 93% 25s Loading
scortInboundCustListMdb16:14:53,2
99 ERROR [GBeanInstanceState] Error while starting; GBean is
now in
the FAILED s
tate:
objectName="geronimo.server:EJBModule=inboundCustListMdb.jar,J2EEA
ppli
cati
on=scortInboundCustListMdb,J2EEServer=geronimo,j2eeType=JCAActivat
ionS
pec,name=S
cortInboundCustListMdb"
java.lang.ClassNotFoundException:
com.scort.inbound.jca.socket.impl.SocketActiva
tionSpec
at java.net.URLClassLoader$1.run(URLClassLoader.java:199)
I expected the Resource Adapter class loader to be a parent of
the
EAR class loader !
What did you do to make this be the case?
I didn't do anything. I just assumed that that, in the openebj-
jar.xml, the parentId or the resource-link element,
where there to do the trick
Assuming you are using
geronimo 1.0 or trunk/head, your ra plan should have something like
this:
<..... configId="myGroupId/myJCAAdapter/1.0/car"....>
and the ear should include up before the dependencies (IIRC)
<import>
<groupId>myGroupId</groupId>
<type>car</type>
<artifactId>myJCAAdapter</artifactId>
<version>1.0</version>
</import>
This specifies that one of the parent classloaders of the ear is
the
classloader of the deployed jca adapter.
Sorry to insist, but there are informations I miss. I deploy my
Adapter by dropping the archive in the deploy
directory, putting nothing in the repository dir.
So,
What is my groupId ? What is car ?
In which file for the ear must I specifiy the import element and
how do I specify dependencies ?
Very basic questions indeed, but I'm quite lost.
Thanks for your answer...
Jean-Noël