Apache Geronimo > Discussion Forums  User List | Dev List | Wiki | Issue Tracker  

 « Return to Thread: JCA and MDB

JCA and MDB

by ardf69 :: Rate this Message:

Reply to Author | View in Thread

Hi all,
I create a inbound JCA that connects to some JMS Queues (their name is defined in a DB accessed by hibernate classes). The deploy of the jca and the start/stop is ok. Here there is the ra.xml:

<?xml version="1.0" encoding="UTF-8"?>
<connector id="Connector_ID" version="1.5" 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">
        <description></description>
        <display-name>UBQ_JSR212_JCA_Queue</display-name>
  <vendor-name>Ubiquity s.r.l.</vendor-name>
  <eis-type>JMS</eis-type>
  <resourceadapter-version>1.0</resourceadapter-version>                                  
  <resourceadapter>
  <resourceadapter-class>it.ubiquity.sams.jms.DequeuerResourceAdapter</resourceadapter-class>
  <inbound-resourceadapter>
  <messageadapter>
  <messagelistener>
  <messagelistener-type>javax.jms.MessageListener</messagelistener-type>
  <activationspec>
  <activationspec-class>it.ubiquity.sams.jms.DequeuerActivationSpec</activationspec-class>
  <required-config-property>
  <description>The queue prefix</description>
  <config-property-name>queuePrefix</config-property-name>
  </required-config-property>
  </activationspec>
  </messagelistener>
  </messageadapter>
  </inbound-resourceadapter>
  <security-permission>
  <description>Permissions allowed to the EIS Connector</description>
  <security-permission-spec/>
  </security-permission>
  </resourceadapter>
</connector>

and the geronimo-ra.xml:

<?xml version="1.0" encoding="UTF-8"?>
<connector
        xmlns="http://geronimo.apache.org/xml/ns/j2ee/connector-1.2"
        xmlns:app="http://geronimo.apache.org/xml/ns/j2ee/application-2.0"
        xmlns:client="http://geronimo.apache.org/xml/ns/j2ee/application-client-2.0"
        xmlns:dep="http://geronimo.apache.org/xml/ns/deployment-1.2"
        xmlns:ejb="http://openejb.apache.org/xml/ns/openejb-jar-2.2"
        xmlns:name="http://geronimo.apache.org/xml/ns/naming-1.2"
        xmlns:pers="http://java.sun.com/xml/ns/persistence"
        xmlns:pkgen="http://openejb.apache.org/xml/ns/pkgen-2.1"
        xmlns:sec="http://geronimo.apache.org/xml/ns/security-2.0"
        xmlns:web="http://geronimo.apache.org/xml/ns/j2ee/web-2.0.1"
>
        <dep:environment>
                <dep:moduleId>
                        <dep:groupId>sams.jca</dep:groupId>
                        <dep:artifactId>UBQ_JSR212_JCA_Queue</dep:artifactId>
                        <dep:version>1.0</dep:version>
                        <dep:type>car</dep:type>
                </dep:moduleId>
                <dep:dependencies/>
                <dep:hidden-classes/>
                <dep:non-overridable-classes/>
        </dep:environment>
        <resourceadapter>
                <resourceadapter-instance>
                        <resourceadapter-name>SAMSQueueManager</resourceadapter-name>
                        <name:workmanager>
                                <name:gbean-link>DefaultWorkManager</name:gbean-link>
                        </name:workmanager>
                </resourceadapter-instance>
        </resourceadapter>
</connector>

I created a mdb that connects to this jca and I included it in ear. Here there is the geronimo-application.xml:

<?xml version="1.0" encoding="UTF-8"?>
<app:application
        xmlns:app="http://geronimo.apache.org/xml/ns/j2ee/application-2.0"
        xmlns:sys="http://geronimo.apache.org/xml/ns/deployment-1.2"
        xmlns:sec="http://geronimo.apache.org/xml/ns/security-2.0"
        application-name="UBQ_JSR212_EAR_Frontend"
>
        <sys:environment>
                <sys:moduleId>
                        <sys:groupId>sams.ear</sys:groupId>
                        <sys:artifactId>UBQ_JSR212_EAR_Middleware</sys:artifactId>
                        <sys:version>1.0</sys:version>
                        <sys:type>ear</sys:type>
                </sys:moduleId>
        </sys:environment>
</app:application>

the ejb-jar.xml:

<?xml version="1.0" encoding="UTF-8"?>
<ejb-jar id="ejb-jar_ID" version="2.1" 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">
        <display-name>UBQ_JSR212_EJB_Frontend</display-name>
        <enterprise-beans>
                <message-driven>
                        <ejb-name>FrontendMDB</ejb-name>
                        <ejb-class>it.ubiquity.sams.jms.FrontendBean</ejb-class>
                        <messaging-type>javax.jms.MessageListener</messaging-type>
                        <transaction-type>Container</transaction-type>
                        <activation-config>
                                <activation-config-property>
                                        <activation-config-property-name>queuePrefix</activation-config-property-name>
                                        <activation-config-property-value>f</activation-config-property-value>
                                </activation-config-property>
                        </activation-config>
                </message-driven>
        </enterprise-beans>
        <assembly-descriptor>
                <container-transaction>
                        <method>
                                <ejb-name>FrontendMDB</ejb-name>
                                <method-name>*</method-name>
                        </method>
                        <trans-attribute>NotSupported</trans-attribute>
                </container-transaction>
        </assembly-descriptor>
</ejb-jar>

and the openejb-jar.xml:

<?xml version="1.0" encoding="UTF-8"?>
<openejb-jar
        xmlns="http://openejb.apache.org/xml/ns/openejb-jar-2.2"
        xmlns:naming="http://geronimo.apache.org/xml/ns/naming-1.2"
        xmlns:security="http://geronimo.apache.org/xml/ns/security-2.0"
        xmlns:sys="http://geronimo.apache.org/xml/ns/deployment-1.2"
        xmlns:pkgen="http://openejb.apache.org/xml/ns/pkgen-2.1"
        version="1.0"
>
        <sys:environment>
                <sys:moduleId>
                        <sys:groupId>sams.ejb</sys:groupId>
                        <sys:artifactId>UBQ_JSR212_EJB_Frontend</sys:artifactId>
                        <sys:version>1.0</sys:version>
                        <sys:type>jar</sys:type>
                </sys:moduleId>
                <sys:dependencies>
                        <sys:dependency>
                                <sys:groupId>sams.jca</sys:groupId>
                                <sys:artifactId>UBQ_JSR212_JCA_Queue</sys:artifactId>
                                <sys:version>1.0</sys:version>
                                <sys:type>car</sys:type>
                        </sys:dependency>
                        <sys:dependency>
                                <sys:groupId>console.jms</sys:groupId>
                                <sys:artifactId>sams</sys:artifactId>
                                <sys:version>1.0</sys:version>
                        </sys:dependency>
                        <sys:dependency>
                                <sys:groupId>console.dbpool</sys:groupId>
                                <sys:artifactId>jdbc_sams</sys:artifactId>
                                <sys:version>1.0</sys:version>
                                <sys:type>rar</sys:type>
                        </sys:dependency>
                </sys:dependencies>
        </sys:environment>

        <enterprise-beans>
                <message-driven>
                        <ejb-name>FrontendMDB</ejb-name>
                        <naming:resource-adapter>
                                <naming:resource-link>SAMSQueueManager</naming:resource-link>
                        </naming:resource-adapter>
                </message-driven>
        </enterprise-beans>
</openejb-jar>

When I deploy the ear the app server (the jca is already deployed and running) give me a strange error:

Caused by: java.lang.IllegalStateException: Container does not exist: UBQ_JSR212_JCA_Queue.  Referenced by deployment: UBQ_JSR212_EJB_Frontend.jar/FrontendMDB
        at org.apache.openejb.assembler.classic.EjbJarBuilder.build(EjbJarBuilder.java:60)
        ... 28 more

where UBQ_JSR212_EJB_Frontend.jar is the name of the ejb jar in the ear.
Can someone help me?
Regards

Angelo

 « Return to Thread: JCA and MDB