首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法连接到队列的即时消息传递

无法连接到队列的即时消息传递
EN

Stack Overflow用户
提问于 2015-09-29 18:25:58
回答 1查看 148关注 0票数 1

目前,我有一个正在运行的ActiveMQ实例,我正在尝试连接到使用不变体。目前这个连接的代码看起来是这样的;

代码语言:javascript
复制
(defn make-ctx
  []
  (log/debug "making context")
  (let [ctx (m/context :host (:host immutant-host) :port (:port immutant-host))]
    (log/debug "context created")
    ctx))

(defn make-listener
  [ctx]
  (let [listener (m/listen topic #(log/debug %) :context ctx)]
    (log/debug "listener created")
    listener))

(defn immutant-test
  []
  (log/debug "testing immutant messaging with ActiveMQ")
  (let [ctx (make-ctx)
        listener (make-listener ctx)]
  (Thread/sleep 15000)
  (.close listener)))

虽然我的代码没有让它传递make-ctx函数。当它试图创建上下文时,我会得到错误。

代码语言:javascript
复制
Exception in thread "main" java.lang.RuntimeException: javax.jms.JMSException: Failed to create session factory
    at org.projectodd.wunderboss.messaging.jms.DestinationUtil.mightThrow(DestinationUtil.java:47)
    at org.projectodd.wunderboss.messaging.jms.JMSMessagingSkeleton.createContext(JMSMessagingSkeleton.java:64)
    at org.projectodd.wunderboss.messaging.jms.JMSMessagingSkeleton.createContext(JMSMessagingSkeleton.java:181)
    at immutant.messaging$context.doInvoke(messaging.clj:84)
    at clojure.lang.RestFn.invoke(RestFn.java:457)
    at jms_test.core$make_ctx.invoke(core.clj:24)
    at jms_test.core$immutant_test.invoke(core.clj:37)
    at jms_test.core$_main.invoke(core.clj:158)
    at clojure.lang.AFn.applyToHelper(AFn.java:152)
    at clojure.lang.AFn.applyTo(AFn.java:144)
    at jms_test.core.main(Unknown Source)
Caused by: javax.jms.JMSException: Failed to create session factory
    at org.hornetq.jms.client.HornetQConnectionFactory.createConnectionInternal(HornetQConnectionFactory.java:673)
    at org.hornetq.jms.client.HornetQConnectionFactory.createConnection(HornetQConnectionFactory.java:112)
    at org.hornetq.jms.client.HornetQConnectionFactory.createConnection(HornetQConnectionFactory.java:107)
    at org.projectodd.wunderboss.messaging.jms.JMSMessagingSkeleton$1.call(JMSMessagingSkeleton.java:73)
    at org.projectodd.wunderboss.messaging.jms.DestinationUtil.mightThrow(DestinationUtil.java:45)
    ... 10 more
Caused by: HornetQConnectionTimedOutException[errorType=CONNECTION_TIMEDOUT message=HQ119013: Timed out waiting to receive cluster topology. Group:null]
    at org.hornetq.core.client.impl.ServerLocatorImpl.createSessionFactory(ServerLocatorImpl.java:946)
    at org.hornetq.jms.client.HornetQConnectionFactory.createConnectionInternal(HornetQConnectionFactory.java:669)
    ... 14 more

非突变主机被定义为

代码语言:javascript
复制
(def immutant-host {:host "127.0.0.1" :port 61616})

我已经能够连接到我的代理与clamq,并能够发送和接收消息与此。尽管如此,由于应用程序的其余部分是用不变消息构建的,所以如果可能的话,我想继续使用这个库,以避免不得不支持多个消息传递库。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-09-29 19:35:01

Im突变体构建在HornetQ之上,因此默认情况下只能连接到HornetQ服务器。这是因为JMS规范没有提供有线协议,因此每个实现都有自己的实现。但是,如果远程ActiveMQ实际上是阿耳特弥斯,则可以使用阿特米斯来启用从互斥中使用它(请注意,本文指出您必须使用一个增量构建的Immutant这不再是真的,您可以使用Immut2.1.0)。

如果不是Artemis,那么使用artemis版本作为指导实现wunderboss-activemq适配器就不难了。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32851228

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档