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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

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

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

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

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

安裝ActiveMQ資源適配器

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

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

創(chuàng)建和部署消息驅(qū)動Bean

  • 在您喜歡的IDE中創(chuàng)建一個新的Java Enterprise項(xiàng)目,并創(chuàng)建一個包含以下內(nèi)容的消息驅(qū)動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連接到已配置的隊(duì)列,但是它將嘗試使用連接到嵌入式OpenMQ代理的默認(rèn)ConnectionFactory進(jìn)行連接。 這不是我們想要的,所以我們將指示Glassfish使用哪個ConnectionFactory。

  • 在META-INF文件夾中添加一個名為glassfish-ejb-jar.xml的文件,并插入以下內(nèi)容:
<?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現(xiàn)在使用ActiveMQ ConnectionFactory,一切都很好。 使用ActiveMQ Web控制臺將消息發(fā)送到稱為“ jms / queue / incoming”的隊(duì)列,或使用其他工具發(fā)送消息。 Glassfish會捕獲所有sysout語句并將其打印在默認(rèn)的glassfish日志文件中。

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


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

總結(jié)

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

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。