簡體   English   中英

C ++ JMS客戶端或C ++ / C SOAP客戶端

[英]C++ JMS client or C++/C SOAP Client

我有一個C ++應用程序,但它需要與基於Java的消息服務“交談”。 在過去,我們使用WebSphere MQ並使用他們的C ++庫來進行“交談”。

所以我正在尋找(理想情況下)免費的C ++到Java解決方案,它不會將整個JVM保存在內存中。

我研究過的另一個選擇是SOAP。 我已經研究過Axis2-C但它給了我整個服務器實現,我不需要它。 我見過關於gSOAP的討論,但在這里看到了混合評論。 它似乎再次為我提供了一個完整的服務器。

我可以自己編寫代碼 - 但它違背了我(基於Java)的信念,即存在優秀的免費代碼。

謝謝! A'z

這里有幾點對我沒有意義,JMS是對特定消息傳遞API的Java特定抽象,就像JDBC是通用數據庫API的Java特定抽象一樣。
我無法想象有人想要一個C ++應用程序的JDBC驅動程序,他們寧願使用ODBC驅動程序。

因此,如果我假設您的目標是在不使用C ++應用程序的Websphere MQ的情況下發送消息,那么我建議您考慮以下事項:

  • 你需要異步消息嗎? 即將消息存儲在隊列中,直到消息被消耗?
  • 如果是,那么Web服務將不適用於您的應用程序,除非您准備托管Web服務器以接收響應,並回調您的應用程序。

您還沒有提到基礎的基於Java的消息服務是基於JMS還是Web服務。
您可以考慮將ActiveMQ用作消息傳遞提供程序,它提供了JMS API的實現,並且還實現了STOMP協議,該協議具有許多語言(包括C ++)的客戶端庫。

通過使用Mule等實現集成層,您可以在嘗試各種選項時保留對終點協議的決定。
您可以在Mule上快速開發小型集成,例如在ActiveMQ上接受消息,並將其發布到WebService並將WebService響應放在不同的ActiveMQ響應隊列上。 反之亦然,接受Web服務調用並將SOAP發布到JMS隊列,等待JMS響應並構建SOAP響應。

有許多類似ESB的框架可以在不同程度上促進這些類型的集成:

編輯:鑒於澄清,我將改進我的答案:

  1. 您需要一個可供C ++和Java訪問的公共消息代理,例如ActiveMQ。
  2. 你需要一個小/輕量級的集成層,比如上面的一些,從ActiveMQ接收並轉發到SonicMQ,反之亦然。

2.1根據我所知的Sonic,他們有一個ESB堆棧應該能夠做到這一點,而不是使用上面提到的容器/框架之一,但這將打開你和客戶之間集成所有權的問題。

我發現3個鏈接顯示Sonic對C和C ++的支持:
- http://www.sonicsoftware.com/products/docs/sonicmq_app_server_ds.pdf
- http://www.sonicsoftware.com/developer/documentation/docs/sonicmq_c_v60.pdf
- http://communities.progress.com/pcom/servlet/JiveServlet/download/10809-3-10161/cclients_readme_76.htm (此鏈接上有狡猾的mime類型)

SonicMQ網站似乎表明它們支持C ++。

這似乎是合適的。

SonicMQ有C ++庫。 主要的限制是你必須使用Sonic用於編譯庫的相同構建(即STL庫等)。

http://web.progress.com/en/sonic/sonicmq-clients.html

當然你半年前問了這個問題,所以這個信息可能有點遲了。 :-)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM