我一直在使用Boomi中的JMS连接器来连接ActiveMQ Artemis 2.14,但是使用客户端库activemq-All5.15.11.jar和工厂org.apache.activemq.jndi.ActiveMQInitialContextFactory,这是可行的,只是在堆中创建大量org.apache.activemq.artemis.core.server.impl.MessageReferenceImpl对象的连接存在问题,这些对象不是与实际消息关联,而是与ActiveMQ.Advisory.TempQueue关联。
因此,我正在尝试使用ActiveMQ Artemis 2.14客户端设置一个Boomi JMS连接器。我将以下库导入到Atom中:
然后,我创建了一个自定义库,将其设置为Connector,并添加了上述库并部署到Atom中。在连接器中,我指定了ActiveMQ和ConectionFactory org.apache.activemq.artemis.jndi.ActiveMQInitialContextFactory
这给了我一个java转储,抱怨“无法创建初始上下文”和“无效代理URL”我的URL有点花哨,但它适用于另一个ActiveMQ连接器。
failover:(tcp://[host]:61616,tcp://[host]:61616)?startupMaxReconnectAttempts=2&maxReconnectAttempts=0&maxReconnectDelay=1000所以我尝试了一个简单的URL,只是tcp://[host]:61616 --这给了我一个奇怪的错误:“执行过程中的意外错误: java.lang.NoClassDefFoundError: org/jboss/Logger/Logger”
所以,这是否意味着我包含了一个我不需要的库,它需要jboss,还是实际上我需要jboss库?
如对此有任何指导,将不胜感激。
发布于 2021-02-13 01:43:29
这里有很多问题要讨论。我轮流拿每一张。
.我对堆中创建numerous...objects的连接有问题,这些连接与实际消息无关,而是与
ActiveMQ.Advisory.TempQueue关联。
您应该能够通过在客户端正在使用的supportAdvisory=false中的acceptor上设置broker.xml来解决这个问题。这是在OpenWire在ActiveMQ Artemis用户手册中的章节中讨论的。
下面的库被导入到Atom中..。
您真正需要的唯一库是artemis-jms-client-all-2.14.0.jar。顾名思义,它包含所有的ActiveMQ Artemis客户端代码以及所有依赖项(例如Netty、JMS类、JBoss日志框架等)。
在连接器中,我指定了ActiveMQ和ConectionFactory
org.apache.activemq.artemis.jndi.ActiveMQInitialContextFactory
类org.apache.activemq.artemis.jndi.ActiveMQInitialContextFactory不是JMS ConnectionFactory实现。它是JNDI的InitialContextFactory实现。
这给了我一个java转储,抱怨“无法创建初始上下文”和“无效代理URL”我的URL有点花哨,但它适用于另一个ActiveMQ连接器。
您使用的URL适合用于OpenWire 5.x的ActiveMQ JMS (您以前使用过)。但是,对于用于ActiveMQ Artemis的核心JMS (您现在正在使用的)来说,它是无效的。您可以使用这样的东西来代替:
(tcp://[host]:61616,tcp://[host]:61616)?ha=true&initialConnectAttempts=2&reconnectAttempts=0&maxRetryInterval=1000https://stackoverflow.com/questions/66179990
复制相似问题