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,J2EEApp
li
cati
on=scortInboundCustListMdb,J2EEServer=geronimo,j2eeType=JCAActivatio
nS
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 !
Any help will be welcomed
Jean-Noël
Here are my deployment descriptors:
For the Adapter
Ra.xml
______
<?xml version="1.0" encoding="UTF-8"?>
<connector xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/connector_1_5.xsd"
version="1.5">
<description>EIS Resource Adapter 1.5</description>
<display-name>EIS JCA Adapter 1.5</display-name>
<vendor-name>SCORT</vendor-name>
<eis-type>Serveur EIS</eis-type>
<resourceadapter-version>4.0</resourceadapter-version>
<license>
<description>Copyright (c) 2005 SCPRT</description>
<license-required>false</license-required>
</license>
<resourceadapter>
<resourceadapter-
class>com.scort.inbound.jca.InboundResourceAdapter</resourceadapter-
class>
<outbound-resourceadapter>
<connection-definition>
<managedconnectionfactory-
class>com.scort.ctg.cics.eci.jca.EciManagedConnectionFactory</
managedconnectionfactory-class>
<config-property>
<description>URL of the CTG</description>
<config-property-name>ConnectionUrl</config-property-name>
<config-property-type>java.lang.String</config-property-
type>
<config-property-value>tcp:localhost:2006</config-
property-value>
</config-property>
<config-property>
<description>Server Name</description>
<config-property-name>ServerName</config-property-name>
<config-property-type>java.lang.String</config-property-
type>
<!-- config-property-value></config-property-value -->
</config-property>
<config-property>
<description>Jndi names of equivalent factories</
description>
<config-property-name>AlternateConfigsNames</config-
property-name>
<config-property-type>java.lang.String</config-property-
type>
<config-property-value>tcp:localhost:2006</config-
property-value>
</config-property>
<connectionfactory-
interface>javax.resource.cci.ConnectionFactory</connectionfactory-
interface>
<connectionfactory-impl-
class>com.scort.ctg.cics.eci.jca.EciConnectionFactory</
connectionfactory-impl-class>
<connection-interface>javax.resource.cci.Connection</
connection-interface>
<connection-impl-
class>com.scort.ctg.cics.eci.jca.EciConnection</connection-impl-
class>
</connection-definition>
<transaction-support>LocalTransaction</transaction-support>
<authentication-mechanism>
<authentication-mechanism-type>BasicPassword</
authentication-mechanism-type>
<credential-
interface>javax.resource.spi.security.PasswordCredential</
credential-interface>
</authentication-mechanism>
<reauthentication-support>true</reauthentication-support>
</outbound-resourceadapter>
<inbound-resourceadapter>
<messageadapter>
<messagelistener>
<messagelistener-
type>com.scort.inbound.jca.api.InboundListener</messagelistener-
type>
<activationspec>
<activationspec-
class>com.scort.inbound.jca.socket.impl.SocketActivationSpec</
activationspec-class>
<required-config-property>
<config-property-name>id</config-property-name>
</required-config-property>
<required-config-property>
<config-property-name>port</config-property-name>
</required-config-property>
</activationspec>
</messagelistener>
</messageadapter>
</inbound-resourceadapter>
<adminobject>
<adminobject-
interface>com.scort.ctg.cics.eci.jca.EciConnectionSpecInterface</
adminobject-interface>
<adminobject-
class>com.scort.ctg.cics.eci.jca.EciConnectionSpec</adminobject-
class>
<config-property>
<config-property-name>userName</config-property-name>
<config-property-type>java.lang.String</config-property-
type>
</config-property>
<config-property>
<config-property-name>password</config-property-name>
<config-property-type>java.lang.String</config-property-
type>
</config-property>
</adminobject>
<adminobject>
<adminobject-
interface>com.scort.ctg.cics.eci.jca.EciInteractionSpecInterface</
adminobject-interface>
<adminobject-
class>com.scort.ctg.cics.eci.jca.EciInteractionSpec</adminobject-
class>
<config-property>
<config-property-name>commareaLength</config-property-name>
<config-property-type>java.lang.Integer</config-property-
type>
<config-property-value>20000</config-property-value>
</config-property>
<config-property>
<config-property-name>compactOutgoingData</config-property-
name>
<config-property-type>java.lang.Boolean</config-property-
type>
</config-property>
<config-property>
<config-property-name>dumpCodePage</config-property-name>
<config-property-type>java.lang.String</config-property-
type>
</config-property>
<config-property>
<config-property-name>executionTimeout</config-property-
name>
<config-property-type>java.lang.Integer</config-property-
type>
<config-property-value>0</config-property-value>
</config-property>
<config-property>
<config-property-name>mode</config-property-name>
<config-property-type>java.lang.Integer</config-property-
type>
<config-property-value>1</config-property-value>
</config-property>
<config-property>
<config-property-name>transactionName</config-property-name>
<config-property-type>java.lang.String</config-property-
type>
</config-property>
</adminobject>
</resourceadapter>
</connector>
geronimo-ra.xml
______________
<?xml version="1.0" encoding="UTF-8"?>
<connector xmlns="http://geronimo.apache.org/xml/ns/j2ee/connector"
configId="ScortJcaAdapter15"
version="1.5">
<resourceadapter>
<resourceadapter-instance>
<resourceadapter-name>ScortJcaAdapter15</resourceadapter-name>
<workmanager>
<gbean-link>DefaultWorkManager</gbean-link>
</workmanager>
</resourceadapter-instance>
<outbound-resourceadapter>
<connection-definition>
<connectionfactory-
interface>javax.resource.cci.ConnectionFactory</connectionfactory-
interface>
<connectiondefinition-instance>
<name>demoInbound.managedConnectionFactory</name>
<implemented-
interface>com.scort.ctg.cics.eci.jca.EciConnectionFactory</
implemented-interface>
<connectionmanager>
<xa-transaction>
<transaction-caching/>
</xa-transaction>
<single-pool>
<max-size>10</max-size>
<blocking-timeout-milliseconds>5000</blocking-timeout-
milliseconds>
<match-one/>
</single-pool>
</connectionmanager>
</connectiondefinition-instance>
</connection-definition>
</outbound-resourceadapter>
</resourceadapter>
<adminobject>
<adminobject-
interface>com.scort.ctg.cics.eci.jca.EciConnectionSpecInterface</
adminobject-interface>
<adminobject-
class>com.scort.ctg.cics.eci.jca.EciConnectionSpec</adminobject-
class>
<adminobject-instance>
<message-destination-name>demoInbound.CS</message-
destination-name>
<config-property-setting name="userName">aa</config-
property-setting>
<config-property-setting name="password">aa</config-
property-setting>
</adminobject-instance>
</adminobject>
<adminobject>
<adminobject-
interface>com.scort.ctg.cics.eci.jca.EciInteractionSpecInterface</
adminobject-interface>
<adminobject-
class>com.scort.ctg.cics.eci.jca.EciInteractionSpec</adminobject-
class>
<adminobject-instance>
<message-destination-name>demoInbound.IS</message-
destination-name>
<config-property-setting name="commareaLength">20000</
config-property-setting>
<config-property-setting name="compactOutgoingData">true</
config-property-setting>
<config-property-setting name="dumpCodePage">cp037</config-
property-setting>
<config-property-setting name="executionTimeout">10000</
config-property-setting>
<config-property-setting name="mode">1</config-property-
setting>
</adminobject-instance>
</adminobject>
</connector>
For the EAR
application.xml
____________
<?xml version="1.0" encoding="UTF-8"?>
<application version="1.4"
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/application_1_4.xsd">
<display-name>InboundCustListMdb</display-name>
<description></description>
<module>
<ejb>inboundCustListMdb.jar</ejb>
</module>
</application>
ejb-jar.xml (in a META-INF dir in the right jar)
_________
<?xml version="1.0" encoding="UTF-8"?>
<ejb-jar xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/ejb-jar_2_1.xsd"
version="2.1">
<enterprise-beans>
<message-driven>
<ejb-name>ScortInboundCustListMdb</ejb-name>
<ejb-
class>com.scort.inbound.test.custlist.GeronimoInboundCustListMdb</
ejb-class>
<messaging-type>com.scort.inbound.jca.api.InboundListener</
messaging-type>
<transaction-type>Container</transaction-type>
<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>
<assembly-descriptor>
<container-transaction>
<method>
<ejb-name>ScortInboundCustListMdb</ejb-name>
<method-name>*</method-name>
</method>
<trans-attribute>NotSupported</trans-attribute>
</container-transaction>
</assembly-descriptor>
</ejb-jar>
opnejb-jar.xml (in a META-INF dir in the right jar)
____________
<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">
<enterprise-beans>
<message-driven>
<ejb-name>ScortInboundCustListMdb</ejb-name>
<!--
<resource-adapter>
<target-
name>geronimo.server:J2EEApplication=null,J2EEServer=geronimo,JCARes
ou
rce=ScortJcaAdapter15,j2eeType=JCAResourceAdapter,name=ScortJcaAdapt
er
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>