將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

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/372318.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/372318.shtml
英文地址,請注明出處:http://en.pswp.cn/news/372318.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

esp8266 lcd 天氣_ESP8266 顯示實時天氣信息

代碼文件getdata.h#include #include #include #include #include #include #include #define DEBUG 1#define MAX_CONTENT_SIZE 2000const char* ssid "weather";const char* password "mymymymy";WiFiClient client;HTTPClient http;char response[MAX…

【VS開發】visual studio 2015的NuGet Manager解決方案管理功能

NuGet的官方說明是&#xff1a;NuGet是一款Visual Studio的擴展&#xff0c;它可以簡單的安裝、升級開源庫和工具。 官網地址&#xff1a;http://www.nuget.org/ 官網最醒目的位置就是下載鏈接&#xff0c;安裝完成后我們來快速體驗一把。 手上有個小項目需要使用到json格式&am…

五. 面向對象高級特性4. 接口的概念和使用

在抽象類中&#xff0c;可以包含一個或多個抽象方法&#xff1b;但在接口(interface)中&#xff0c;所有的方法必須都是抽象的&#xff0c;不能有方法體&#xff0c;它比抽象類更加“抽象”。接口使用 interface 關鍵字來聲明&#xff0c;可以看做是一種特殊的抽象類&#xff0…

智能配料

我們都有多少次聽說“分批處理”會增加延遲&#xff1f; 作為對低延遲系統充滿熱情的人&#xff0c;這讓我感到驚訝。 以我的經驗&#xff0c;正確完成批處理不僅可以提高吞吐量&#xff0c;還可以減少平均延遲并保持一致。 那么&#xff0c;批處理如何神奇地減少延遲呢&#x…

mysql從myisam_將MySQL從MyISAM轉換成InnoDB錯誤和解決辦法

原來自己用的是為了裝的&#xff0c; 所以在設置database usage(如下圖1)的時候按照discuz官方的建議&#xff0c;選的都是Non-Transactional Database Only(只支持MyISAM數據引擎的非事務數據庫)&#xff0c;用MyISAM數據庫&#xff0c;還沒涉及到需要InnoDB&#xff0c;因此打…

相似性度量中用到的一些距離函數

本文目錄 1. 歐氏距離 2. 曼哈頓距離 3. 切比雪夫距離 4. 閔可夫斯基距離 5. 標準化歐氏距離 6. 馬氏距離 7. 漢明距離 8. 杰卡德距離 & 杰卡德相似系數 9. 相關系數 & 相關距離 10. 信息熵 1. 歐氏距離(Euclidean Distance) 歐氏距離是最易于理解的一種距離計算方法&a…

Spring 3.1配置文件和Tomcat配置

Spring 3.1引入了非常有用的功能&#xff0c;稱為配置文件 。 因此&#xff0c;它易于構建&#xff0c;可以在所有環境&#xff08;開發&#xff0c;測試&#xff0c;生產等&#xff09;中部署的軟件包。 通過定義系統屬性spring.profiles.active&#xff0c; Spring允許我們使…

計算1~n之間所有奇數之和_所有奇數長度子數組的和

所有奇數長度子數組的和題目&#xff1a;給你一個正整數數組 arr &#xff0c;請你計算所有可能的奇數長度子數組的和。子數組 定義為原數組中的一個連續子序列。請你返回 arr 中 所有奇數長度子數組的和 。示例 1&#xff1a;輸入&#xff1a;arr [1,4,2,5,3]輸出&#xff1a…

MYSQL AND OR的聯用

MYSQL AND OR的聯用 MYSQL中”AND”和”OR”都是條件控制符。”AND”是求交集&#xff0c;而”OR”則是求并集&#xff0c;非常多情況下&#xff0c;須要聯用它們兩個。下面是兩張表,我僅僅列出實用的字段。 Table:student_score 學生成績 sid(學生ID) cid(課程ID) score(分數)…

九度oj 題目1456:勝利大逃亡

題目描述&#xff1a;Ignatius被魔王抓走了,有一天魔王出差去了,這可是Ignatius逃亡的好機會.魔王住在一個城堡里,城堡是一個A*B*C的立方體,可以被表示成A個B*C的矩陣,剛開始Ignatius被關在(0,0,0)的位置,離開城堡的門在(A-1,B-1,C-1)的位置,現在知道魔王將在T分鐘后回到城堡,I…

JMX:一些入門說明

JMX&#xff08;Java管理擴展&#xff09;是一種J2SE技術&#xff0c;可以管理和監視Java應用程序。 基本思想是實現一組管理對象&#xff0c;并將實現注冊到平臺服務器&#xff0c;在平臺服務器上&#xff0c;可以使用一組連接器或適配器從本地或遠程調用這些實現到JVM。 一個…

解釋java程序中的異常機制_Java編程中的異常機制

本文旨在以初學者的角度來學習Java異常的知識&#xff0c;盡量簡單&#xff0c;一些細枝末節的知識不會講述&#xff0c;但不影響對知識的掌握。&#xff08;比如try-catch可以嵌套&#xff0c;不太會這么用&#xff09;1.什么是異常我們先舉個例子int x 10/0;在IDE里輸入這樣…

keras做多層神經網絡

一、 背景與目的 背景&#xff1a;配置好了theano&#xff0c;弄了gpu&#xff0c; 要學dnn方法。 目的&#xff1a;本篇學習keras基本用法&#xff0c; 學習怎么用keras寫mlp&#xff0c;學keras搞文本的基本要點。 二、 準備 工具包&#xff1a; theano、numpy、keras等工具包…

配置環境變量

由于寫了一個關于生成簽名需要配置環境變量&#xff0c;所以在這里順便把配置環境變量的步驟說一下 1.右鍵點擊計算機&#xff0c;然后點擊高級系統設置 2.點擊環境變量&#xff0c;下方出現的即為系統變量&#xff0c;雙擊path就能直接修改&#xff0c; 轉載于:https://www.cn…

使用JavaFX AnimationTimer

回想一下&#xff0c;給AnimationTimer起個名字可能不是一個好主意&#xff0c;因為它不僅可以用于動畫&#xff0c;還可以用于測量&#xff1a;fps速率&#xff0c;碰撞檢測&#xff0c;模擬步驟&#xff0c;游戲主循環等實際上&#xff0c;大部分時間我都看到了AnimationTime…

python列表姓氏_python數據分析實例(六) 中國姓氏數據

bokeh聯動柱狀圖&#xff0c;Excel空間柱狀圖、空間熱力圖&#xff0c;Echarts空間柱狀圖&#xff0c;常用函數&#xff1a;df[工作地_省] df[工作地].str.split(省).str[0]df[工作地_市] df[工作地_市] df[工作地].str.split(省).str[1].str.split(市).str[0]df[工作地_市][…

JavaFX 2 GameTutorial第3部分

介紹 ?他是與一個六個部分組成的系列的第3部分的JavaFX 2游戲教程。 如果您錯過了第1部分和第2部分 &#xff0c;建議您在開始本教程之前先進行閱讀。 回顧第二部分&#xff0c;我討論了游戲循環的內部工作原理&#xff0c;其中我們使用動畫&#xff08;JavaFX Timeline &…

Selenium WebDriver + python 自動化測試框架

目標 組內任何人都可以進行自動化測試用例的編寫 完全分離測試用例和自動化測試代碼&#xff0c;就像寫手工測試用例一下&#xff0c;編寫excel格式的測試用例&#xff0c;包括步驟、檢查點&#xff0c;然后執行自動化工程&#xff0c;即可執行功能自動化測試用例&#xff0c;包…

mysql游戲減少積分活動圖_plantuml-繪制狀態圖和活動圖和部署圖?

背景狀態圖&#xff1a;對象的所有狀態&#xff0c;以及基于事件發生的狀態改變的過程&#xff1b;活動圖&#xff1a;用例的工作流程&#xff1b;部署圖&#xff1a;系統的軟硬件物理體系結構&#xff1b;狀態圖基本語法元素語法說明開始和結束狀態[*]標識開始和結束狀態箭頭-…

windows中當你的鍵盤無法使用時我們可以用另一種方法哦

1.使用WinR打開cmd窗口 2.輸入osk回車就出現了一個虛擬的小鍵盤啦&#xff0c;當你的鍵盤壞掉后非常實用哦 轉載于:https://www.cnblogs.com/qianzf/p/6780496.html