日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

将Glassfish 3连接到外部ActiveMQ 5代理

發布時間:2023/12/3 编程问答 50 豆豆
生活随笔 收集整理的這篇文章主要介紹了 将Glassfish 3连接到外部ActiveMQ 5代理 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
介紹

在ONVZ,我們將Glassfish 3用作開發和生產應用服務器,我們對其性能和穩定性以及周圍的廣大社區感到非常滿意。 我很少遇到在stackoverflow或java.net上沒有匹配解決方案的問題。 作為我們開源策略的一部分,我們還運行了一個定制的ActiveMQ群集,稱為“ ONVZ Message Bus”。

為了使消息驅動Bean和其他EJB能夠使用ActiveMQ消息代理與之交互并從ActiveMQ消息代理產生消息,而無需考慮Glassfish隨附的內部OpenMQ代理,必須安裝ActiveMQ資源適配器。 對我來說幸運的是,Sven Hafner寫了一篇博客文章,介紹如何在Glassfish 3中運行嵌入式ActiveMQ 5代理 ,我能夠提取連接到外部代理所需的信息。 這篇博客文章描述了如何使它起作用。

安裝ActiveMQ資源適配器

  • 在開始Glassfish之前,將以下庫從ActiveMQ安裝目錄或其他位置復制到Glassfish
    • 將“ slf4j-api-1.5.11.jar”從ActiveMQ“ lib”目錄復制到Glassfish“ lib”目錄
  • 從以下位置下載資源適配器(activemq-rar-5.5.1.rar)
  • 在Glassfish中部署資源適配器
    • 在Glassfish管理控制臺中, 轉到“應用程序”,然后單擊“部署”
  • 創建資源適配器配置
    • 在Glassfish管理控制臺中, 轉到“資源”,然后單擊“資源適配器配置”
  • 創建連接器連接池
    • 在Glassfish管理控制臺中, 轉到“資源”,“連接器”,“連接器連接池”
  • 創建管理對象資源
    • 在Glassfish管理控制臺中, 轉到“資源”,“連接器”,“管理對象資源”

現在,我們已經準備好一切(實際上在JNDI中),以開始使用標準Java EE消息驅動Bean處理消息。 您剛剛創建的“連接器連接池”導致ConnectionFactory在JNDI中注冊,而“管理對象資源”導致JMS目標。 當您轉到“資源”,“ JMS資源”時,可以在管理控制臺中找到這些對象。 在我使用的Glassfish版本(3.1.1)中,管理控制臺存在一個錯誤,該錯誤導致連接工廠和目標僅在菜單中可見,而在頁面右側不可見。

創建和部署消息驅動Bean

  • 在您喜歡的IDE中創建一個新的Java Enterprise項目,并創建一個包含以下內容的消息驅動Bean:
package com.example.activemq.glassfish;import javax.ejb.*; import javax.jms.*;@MessageDriven(activationConfig = {@ActivationConfigProperty(propertyName = 'destinationType', propertyValue = 'javax.jms.Queue'),@ActivationConfigProperty(propertyName = 'destination', propertyValue = 'jms/queue/incoming')} ) public class ExampleMessageBean implements MessageListener {public void onMessage(Message message) {try {System.out.println('We've received a message: ' + message.getJMSMessageID());} catch (JMSException e) {e.printStackTrace();}} }

Glassfish會將您的bean連接到已配置的隊列,但是它將嘗試使用連接到嵌入式OpenMQ代理的默認ConnectionFactory進行連接。 這不是我們想要的,所以我們將指示Glassfish使用哪個ConnectionFactory。

  • 在META-INF文件夾中添加一個名為glassfish-ejb-jar.xml的文件,并插入以下內容:
<?xml version='1.0' encoding='UTF-8'?> <!DOCTYPE glassfish-ejb-jar PUBLIC '-//GlassFish.org//DTD GlassFish Application Server 3.1 EJB 3.1//EN' 'http://glassfish.org/dtds/glassfish-ejb-jar_3_1-1.dtd'> <glassfish-ejb-jar><enterprise-beans><ejb><ejb-name>ExampleMessageBean</ejb-name><mdb-connection-factory><jndi-name>jms/connectionFactory</jndi-name></mdb-connection-factory><mdb-resource-adapter><resource-adapter-mid>activemq-rar-5.5.1</resource-adapter-mid></mdb-resource-adapter></ejb></enterprise-beans> </glassfish-ejb-jar>
  • 將MDB部署到glassfish

Glassfish現在使用ActiveMQ ConnectionFactory,一切都很好。 使用ActiveMQ Web控制臺將消息發送到稱為“ jms / queue / incoming”的隊列,或使用其他工具發送消息。 Glassfish會捕獲所有sysout語句并將其打印在默認的glassfish日志文件中。

參考: 如何通過我們的JCG合作伙伴 Geert Schuring在Geert Schuring博客上將Glassfish 3連接到外部ActiveMQ 5代理 。


翻譯自: https://www.javacodegeeks.com/2012/06/connect-glassfish-3-to-external.html

總結

以上是生活随笔為你收集整理的将Glassfish 3连接到外部ActiveMQ 5代理的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。