jakarta-ee - TomEE:配置 AMQP JCA 资源适配器
问题描述
我正在尝试使用 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/changeing-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/jsstralko/tomee-jac
推荐阅读
- kotlin - 无法将文本设置为片段;适配器类的 Textview。错误我正在获取 lateinit 属性绑定尚未初始化
- c - C中的Sleep()函数不能在hp不间断地工作
- c# - 如何在我的列表中删除随机字符串名称并打印删除的名称?
- checkpoint - NotFoundError:从检查点恢复失败。这很可能是由于缺少变量名称或其他图形键
- c# - 从动态输入框输入
- python - 如何在自定义仪表板中显示 django 角色和权限
- python - 如何狙击之前已删除 2 条消息的消息
- module - 为什么没有名为“peakutils”的模块?
- python - 用 PCA 解释 K-Means 聚类
- list - 集合(列表)的 Prolog