users@glassfish.java.net

Re: Can I define multiple inbound resource adapters?

From: <glassfish_at_javadesktop.org>
Date: Sun, 30 Sep 2007 17:02:37 PDT

This turns out to have been caused by my ra.xml file. My original ra.xml looked like

<?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"
    xmlns:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/connector_1_5.xsd"
    version="1.5">
    <display-name>My Connector"</display-name>
    <vendor-name>Me</vendor-name>
    <eis-type>My Server</eis-type>
    <resourceadapter-version>1.0</resourceadapter-version>
    <resourceadapter>
        <resourceadapter-class>com.edh.adapter.MyAdapter</resourceadapter-class>
        <!-- Can define config-property entries here, if you settings that are constant across the Resource Adapter-->
        <inbound-resourceadapter>
            <messageadapter>
                <messagelistener>
                    <messagelistener-type>com.edh.adapter.ListenerA</messagelistener-type>
                    <activationspec>
                        <activationspec-class>com.edh.adapter.ActivationSpecImplA</activationspec-class>
                        <required-config-property>
                            <config-property-name>ServerName</config-property-name>
                        </required-config-property>
                        <required-config-property>
                            <config-property-name>PortNumber</config-property-name>
                        </required-config-property>
                        <required-config-property>
                            <config-property-name>UserName</config-property-name>
                        </required-config-property>
                        <required-config-property>
                            <config-property-name>Password</config-property-name>
                        </required-config-property>
                        <required-config-property>
                            <config-property-name>EventPatterns</config-property-name>
                        </required-config-property>
                    </activationspec>
                </messagelistener>
            </messageadapter>
        </inbound-resourceadapter>
        <inbound-resourceadapter>
            <messageadapter>
                <messagelistener>
                    <messagelistener-type>com.edh.adapter.ListenerB</messagelistener-type>
                    <activationspec>
                        <activationspec-class>com.edh.adapter.ActivationSpecImplB</activationspec-class>
                        <required-config-property>
                            <config-property-name>ProxyPort</config-property-name>
                        </required-config-property>
                    </activationspec>
                </messagelistener>
            </messageadapter>
        </inbound-resourceadapter>
        <security-permission>
            <description>Permissions allowed to My Connector</description>
            <security-permission-spec/>
        </security-permission>
    </resourceadapter>
</connector>

In the ra.xml, I had multiple <inbound-resourceadapter> elements. If I use a single <inbound-resourceadapter> element, then it deploys fine, and the correct activationspec implementation is used during the call to endpointActivation. The correct ra.xml looks like

<?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"
    xmlns:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/connector_1_5.xsd"
    version="1.5">
    <display-name>My Connector"</display-name>
    <vendor-name>Me</vendor-name>
    <eis-type>My Server</eis-type>
    <resourceadapter-version>1.0</resourceadapter-version>
    <resourceadapter>
        <resourceadapter-class>com.edh.adapter.MyAdapter</resourceadapter-class>
        <!-- Can define config-property entries here, if you settings that are constant across the Resource Adapter-->
        <inbound-resourceadapter>
            <messageadapter>
                <messagelistener>
                    <messagelistener-type>com.edh.adapter.ListenerA</messagelistener-type>
                    <activationspec>
                        <activationspec-class>com.edh.adapter.ActivationSpecImplA</activationspec-class>
                        <required-config-property>
                            <config-property-name>ServerName</config-property-name>
                        </required-config-property>
                        <required-config-property>
                            <config-property-name>PortNumber</config-property-name>
                        </required-config-property>
                        <required-config-property>
                            <config-property-name>UserName</config-property-name>
                        </required-config-property>
                        <required-config-property>
                            <config-property-name>Password</config-property-name>
                        </required-config-property>
                        <required-config-property>
                            <config-property-name>EventPatterns</config-property-name>
                        </required-config-property>
                    </activationspec>
                </messagelistener>
            </messageadapter>
            <messageadapter>
                <messagelistener>
                    <messagelistener-type>com.edh.adapter.ListenerB</messagelistener-type>
                    <activationspec>
                        <activationspec-class>com.edh.adapter.ActivationSpecImplB</activationspec-class>
                        <required-config-property>
                            <config-property-name>ProxyPort</config-property-name>
                        </required-config-property>
                    </activationspec>
                </messagelistener>
            </messageadapter>
        </inbound-resourceadapter>
        <security-permission>
            <description>Permissions allowed to My Connector</description>
            <security-permission-spec/>
        </security-permission>
    </resourceadapter>
</connector>

Chalk it up to pilot error on my part.

Thanks,
Ed
[Message sent by forum member 'hildo' (hildo)]

http://forums.java.net/jive/thread.jspa?messageID=237759