2015-10-06 75 views
1

我有一個用於與Weblogic JMS服務器接口的java對象。我希望能夠從JMS中接收這些消息並在clojure中與他們一起工作。憑藉我有限的知識,我可以認爲這樣做的最佳方式是通過clojure異步庫的渠道。但我不確定是否可以從Java對象發佈到clojure頻道。從Java對象發佈到Clojure頻道

我的理想流程是:

  1. Java對象從JMS訂閱接收消息
  2. 的Java發佈消息到一個通道
  3. Clojure中有一個線程監聽信道和接收 消息
  4. 我一直收到來自clojure 頻道的消息。

我還需要確保這些消息以我從Java接收到的相同順序接收。

有沒有一種方法可以使用異步庫通道從java對象內工作,還是我用這種方法吠叫錯誤的樹?

+1

也許看看http://stackoverflow.com/questions/2181774/calling-clojure-from-java –

+1

爲什麼不使用Clojure代替Java 1 + 2?另外,您可以嘗試以不同的方向思考:將JMS視爲core.async頻道。請參閱https://nvbn.github.io/2015/04/04/redis-core-async/,其中有人使用Redis命令來實現core.async基元。 – schaueho

回答

0

我解決了這個問題,通過在link上的第二條評論來創建一個在我的java源代碼中的頻道。然後將該通道分配給一個通用對象,並向該通道的java源添加一個存取器方法。