TomEE:配置 AMQP JCA 资源适配器
TomEE: Configure AMQP JCA Resource Adapter
我正在尝试使用 JCA 资源适配器将 TomEE 中的当前 JMS 提供程序从 ActiveMQ 更改为 AMQP。 (参见: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>
我的服务-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 资源适配器而不是 ActiveMQ,我错过了什么?任何帮助将不胜感激。
我能够成功更改 TomEE 的 JMS 提供程序以使用 Azure 服务总线。
这是我的 git 回购:https://github.com/jstralko/tomee-jac
我正在尝试使用 JCA 资源适配器将 TomEE 中的当前 JMS 提供程序从 ActiveMQ 更改为 AMQP。 (参见: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>
我的服务-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 资源适配器而不是 ActiveMQ,我错过了什么?任何帮助将不胜感激。
我能够成功更改 TomEE 的 JMS 提供程序以使用 Azure 服务总线。
这是我的 git 回购:https://github.com/jstralko/tomee-jac