Я пытаюсь изменить текущий поставщик JMS в TomEE с ActiveMQ на AMQP с помощью адаптера ресурсов JCA.(См .: https://github.com/amqphub/amqp-10-resource-adapter).
Я успешно развернул .rar на TomEE:
06-Jun-2019 16:03:39.485 INFO [main] org.apache.openejb.util.JarExtractor.extract Extracting jar: /usr/local/tomee/apps/resource-adapter-1.0.1-SNAPSHOT.rar
06-Jun-2019 16:03:39.524 INFO [main] org.apache.openejb.util.JarExtractor.extract Extracted path: /usr/local/tomee/apps/resource-adapter-1.0.1-SNAPSHOT
06-Jun-2019 16:03:40.066 INFO [main] org.apache.openejb.config.ConfigurationFactory.configureApplication Configuring enterprise application: /usr/local/tomee/apps/resource-adapter-1.0.1-SNAPSHO
T.rar
06-Jun-2019 16:03:40.183 INFO [main] org.apache.openejb.config.OutputGeneratedDescriptors.writeRaXml Dumping Generated ra.xml to: /usr/local/tomee/temp/ra-1600877811006704454resource-adapter-1.
0.1-SNAPSHOT.xml
06-Jun-2019 16:03:40.264 INFO [main] org.apache.openejb.config.ConfigurationFactory.configureService Configuring Service(id=resource-adapter-1.0.1-SNAPSHOTRA, type=Resource, provider-id=resourc
e-adapter-1.0.1-SNAPSHOTRA)
06-Jun-2019 16:03:40.266 INFO [main] org.apache.openejb.config.ConfigurationFactory.configureService Configuring Service(id=resource-adapter-1.0.1-SNAPSHOT, type=Resource, provider-id=resource-
adapter-1.0.1-SNAPSHOT)
06-Jun-2019 16:03:40.267 INFO [main] org.apache.openejb.config.ConfigurationFactory.configureService Configuring Service(id=resource-adapter-1.0.1-SNAPSHOT, type=Container, provider-id=Default
MDB Container)
06-Jun-2019 16:03:40.281 INFO [main] org.apache.openejb.config.AppInfoBuilder.build Enterprise application "/usr/local/tomee/apps/resource-adapter-1.0.1-SNAPSHOT.rar" loaded.
Однако, когда я настраиваю TomEE для использования адаптера ресурсов (см .: http://tomee.apache.org/changing-jms-implementations.html)Я получаю следующие ошибки:
06-Jun-2019 19:16:03.870 SEVERE [main] org.apache.openejb.assembler.classic.Assembler.buildContainerSystem Application could not be deployed: /usr/local/tomee/apps/simpleEJB-ear-1.0
org.apache.openejb.OpenEJBException: Creating application failed: /usr/local/tomee/apps/simpleEJB-ear-1.0: Error deploying 'Listener1'. Exception: class org.apache.openejb.OpenEJBException: Unable to create activation spec: ResourceAdapter is not of type: org.apache.activemq.ra.MessageResourceAdapter: Unable to create activation spec: ResourceAdapter is not of type: org.apache.activemq.ra.MessageResourceAdapter
at org.apache.openejb.assembler.classic.Assembler.createApplication(Assembler.java:1096)
at org.apache.openejb.assembler.classic.Assembler.createApplication(Assembler.java:757)
at org.apache.openejb.assembler.classic.Assembler.buildContainerSystem(Assembler.java:635)
at org.apache.openejb.assembler.classic.Assembler.build(Assembler.java:487)
at org.apache.openejb.OpenEJB$Instance.<init>(OpenEJB.java:150)
at org.apache.openejb.OpenEJB.init(OpenEJB.java:307)
Мой файл tomee.xml выглядит следующим образом:
<Resource id="MyJmsResourceAdapter" type="AmqpResourceAdapter" provider="com.wk.amqpra:ampqra">
BrokerXmlConfig =
ServerUrl = amqp://xxxxxxxx.servicebus.windows.net:5671?amqp.idleTimeout=120000&amqp.traceFrames=true
password = ****************
userName = RootManageSharedAccessKey
</Resource>
<Resource id="ConnectionFactory" type="javax.jms.ConnectionFactory" provider="com.wk.amqpra:ConnectionFactory">
ResourceAdapter = MyJmsResourceAdapter
</Resource>
<Container id="MyJmsMdbContainer" ctype="MESSAGE">
ResourceAdapter = MyJmsResourceAdapter
</Container>
My Service-jar.xml:
<ServiceProvider
id="ampqra"
service="Resource"
types="AmqpResourceAdapter"
class-name="org.jboss.resource.adapter.jms.JmsResourceAdapter">
</ServiceProvider>
<ServiceProvider
id="ConnectionFactory"
service="Resource"
types="javax.jms.ConnectionFactory, javax.jms.QueueConnectionFactory, javax.jms.TopicConnectionFactory, QueueConnectionFactory, TopicConnectionFactory"
class-name="org.jboss.resource.adapter.jms.JmsManagedConnectionFactory">
ConnectionFactoryJndiName
ClientId
ConnectionValidationEnabled
ResourceAdapter
</ServiceProvider>
Чтоя скучаю по тому, чтобы заставить TomEE использовать AMQP JCA Resource Adapter вместо ActiveMQ? Любая помощь будет принята с благодарностью.