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,J2EEApplicati
on=scortInboundCustListMdb,J2EEServer=geronimo,j2eeType=JCAActivationSpec,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,JCAResource=ScortJcaAdapter15,j2eeType=JCAResourceAdapter,name=ScortJcaAdapter15</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>