Не удается развернуть MDB с долговременной подпиской (тема) в EJB2.1 для Glassfish 4

Я нахожусь в процессе перехода от OC4J к Glassfish и изо всех сил пытаюсь развернуть MDB с надежными подписками на Glassfish4

Класс MyObserver реализует MessageDrivenBean и MessageListener и зарегистрирован в теме Созданная тема:

asadmin create-jms-resource --restype=javax.jms.Topic --description="Topic for EventObjectMessage(s)" --property Name=PhysicalTopic jms/EventObjectMessageTopic

Создана тема фабрики:

asadmin create-jms-resource --restype=javax.jms.TopicConnectionFactory --description="Topic factory" --property ClientId=EventObjectMessageTopicConnectionFactoryID EventObjectMessageTopicConnectionFactory

созданный физический пункт назначения:

asadmin create-jmsdest --desttype topic EventObjectMessageTopic

в ejb-jar.xml:

<message-driven>
            <ejb-name>MyObserver </ejb-name>
            <ejb-class>com.firm.MyObserver </ejb-class>
            <transaction-type>Container</transaction-type>
            <message-selector>qualifiedName = 'com.firm.EventObjectMessage' AND objectsClassName = 'com.firm.SomeObject'</message-selector>
            <acknowledge-mode>Auto-acknowledge</acknowledge-mode>
            <message-driven-destination>
                <destination-type>javax.jms.Topic</destination-type>
                <subscription-durability>Durable</subscription-durability>
            </message-driven-destination>
... a lot of refs
</message-driven> 

и glassfish-ejb-jar.xml

<ejb>
            <ejb-name>MyObserver </ejb-name>
            <jndi-name>jms/EventObjectMessageTopic</jndi-name>
            <mdb-resource-adapter>
                <activation-config>
                    <activation-config-property>
                        <activation-config-property-name>clientId</activation-config-property-name>
                        <activation-config-property-value>EventObjectMessageTopicConnectionFactoryID</activation-config-property-value>
                    </activation-config-property>
                    <activation-config-property>
                        <activation-config-property-name>subscriptionName</activation-config-property-name>
                        <activation-config-property-value>ASubscriptionName</activation-config-property-value>
                    </activation-config-property>                   
                </activation-config>
            </mdb-resource-adapter>
        </ejb>

Это часть трассировки стека:

[2014-01-07T08:44:44.308+0100] [glassfish 4.0] [SEVERE] [NCLS-CORE-00026] [javax.enterprise.system.core] [tid: _ThreadID=46 _ThreadName=admin-listener(3)] [timeMillis: 1389080684308] [levelValue: 1000] [[
  Exception during lifecycle processing
java.lang.RuntimeException: EJB Container initialization error
    at org.glassfish.ejb.startup.EjbApplication.loadContainers(EjbApplication.java:234)
    at org.glassfish.ejb.startup.EjbDeployer.load(EjbDeployer.java:291)
    at org.glassfish.ejb.startup.EjbDeployer.load(EjbDeployer.java:99)
...
Caused by: java.lang.Exception
    at com.sun.enterprise.connectors.inbound.ConnectorMessageBeanClient.setup(ConnectorMessageBeanClient.java:216)
    at org.glassfish.ejb.mdb.MessageBeanContainer.<init>(MessageBeanContainer.java:252)
    at org.glassfish.ejb.mdb.MessageBeanContainerFactory.createContainer(MessageBeanContainerFactory.java:63)
    at org.glassfish.ejb.startup.EjbApplication.loadContainers(EjbApplication.java:221)
    ... 68 more
Caused by: javax.resource.NotSupportedException: MQRA:EC:Error creating Direct Message Consumer:
createConsumer on JMSService:jmsdirect failed for connectionId:8664718337762585088 and sessionId:8664718337762587904 due to [B4135]: Cannot add durable consumer MyObserver. No ClientID was set on connection.
    at com.sun.messaging.jms.ra.EndpointConsumer.createDirectMessageConsumer(EndpointConsumer.java:890)
    at com.sun.messaging.jms.ra.EndpointConsumer._init(EndpointConsumer.java:345)

Я не уверен, должен ли clientId быть установлен только на фабрике соединений и как mdb-resource-adapter, как я это сделал. У кого-нибудь есть совет или может указать, что я скучаю.

С наилучшими пожеланиями Гейр

0 ответов

Другие вопросы по тегам