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

glassfish5

介绍

在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

glassfish5

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/354363.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux下安装并使用MySQL数据库

注意&#xff1a;如果是配合python使用的话&#xff0c;连接数据库的时候注意python2使用的是mysqldb&#xff0c;python3使用的是pymysql。详细看第三点。 一&#xff0c;首先设置安全组 开放MySQL的默认端口3306 二&#xff0c;安装MySQL服务 在官网查找最新版本的下载链…

Vue 2.0 入门系列(15)学习 Vue.js 需要掌握的 es6 (2)

类与模块 类 es6 之前&#xff0c;通常使用构造函数来创建对象 // 构造函数 User function User(username, email) { this.username username; this.email email; } // 为了让实例共享方法&#xff0c;将其添加到原型上 User.prototype.changeEmail function(newEmail) { th…

Windows下安装并使用MySQL数据库

MySQL是一款免费开源的关系型数据库&#xff0c;很多中小型企业开发项目都选择使用MySQL数据库&#xff0c;所以大家也在优先选择学习MySQL数据库。 一&#xff0c;安装 1.打开MySQL下载地址&#xff0c;MySQL官方下载地址https://dev.mysql.com/downloads/mysql/。 2.选择自…

您的第一个Lagom服务– Java Microservices入门

在撰写我的下一份OReilly报告时&#xff0c;我一直很沮丧&#xff0c;而且一段时间内没有足够的时间来撰写博客。 是时候赶快来这里&#xff0c;让您真正快速地开始使用名为Lagom的新微服务框架。 它与您从Java EE或其他应用程序框架中可能了解到的有所不同。 这对您来说是学习…

android 记录路线轨迹_基于百度地图SDK记录运动轨迹

标签 &#xff1a; 运动轨迹 百度地图SDK最终实现的效果如下图所示###注意1&#xff1a;模拟器上模拟要设置好Location(如果选择None就无法定位了),同时第一次打开应用会提示授权使用地理位置信息,点击允许即可。设置效果图1注意2:由上图的经纬度反查可知这是美国的一个州&…

用户体验

我正在使用的是搜狗输入法。 一&#xff0e;用户界面&#xff1a;搜狗输入法页面较为美观不会是用户感到反感&#xff0c;适合大多数人群使用。 二&#xff0e;比如我长期输入自己的名字张子祥&#xff0c;到时候只需输入zzx就可以直接输出很方便。 三&#xff0e;操作简便&…

转先验概率、最大似然估计、贝叶斯估计、最大后验概率

最大似然估计&#xff1a; 最大似然估计提供了一种给定观察数据来评估模型参数的方法&#xff0c;即&#xff1a;“模型已定&#xff0c;参数未知”。简单而言&#xff0c;假设我们要统计全国人口的身高&#xff0c;首先假设这个身高服从服从正态分布&#xff0c;但是该分布的均…

animate.css动画样式详解

一、使用步骤 <!-- <link rel"stylesheet" href"https://www.jq22.com/jquery/animate-3.1.0.min.css"> --> <link rel"stylesheet" href"animate.css"> <div class"animated bounceInLeft">从左边…

osgi 模块化_OSGi案例研究:模块化vert.x

osgi 模块化OSGi使Java代码可以清晰地划分为多个模块&#xff0c;这些模块称为捆绑软件 &#xff0c;可以访问由每个捆绑软件的类加载器控制的代码和资源。 OSGi 服务提供了一种附加的分离机制&#xff1a;接口的用户无需依赖于实现类&#xff0c;工厂等。 以下案例研究旨在使O…

两个常数的卷积为多少_卷积(Convolution)与好核函数(Good Kernel)

把最近在分析里学到的有趣的东西整理写一写&#xff0c;初学者不专业。我们先来简单介绍Rudin的数学分析里Stone-Weierstrass定理的证明[1]。Stone-Weierstrass定理&#xff1a;对于任意定义在 上的连续&#xff08;continuous&#xff09;函数 &#xff0c;总存在一个多项式函…

Font Awesome(一套绝佳的图标字体库和CSS框架)(icon图标)

官网&#xff1a;https://fontawesome.dashgame.com/ 一、步骤 1、到官网下载 2、将以下代码粘贴到网页HTML代码的 部分 <link href"css/font-awesome.min.css" rel"stylesheet">3、 <i class"fa fa-camera-retro"></i> f…

第三场阴影场与属性访问器接口

这是“ 影子字段与属性访问器”界面的 第3轮 。 如果您是新手&#xff0c;但不确定要怎么做&#xff0c;请查看我以前的文章或关于开发JavaFX应用程序时节省内存的第一篇文章 。 作为Java开发人员&#xff0c;我主要关心的是在开发JavaFX域模型时在性能 &#xff0c; 内存使用和…

移动端布局三种视口_前端基础:必须要知道的移动端适配(4)——视口

视口(viewport)代表当前可见的计算机图形区域。在Web浏览器术语中&#xff0c;通常与浏览器窗口相同&#xff0c;但不包括浏览器的UI&#xff0c; 菜单栏等——即指你正在浏览的文档的那一部分。一般我们所说的视口共包括三种&#xff1a;布局视口、视觉视口和理想视口&#xf…

js判断移动端,pc端,安卓,苹果浏览器的方法

js 判断安卓或者ios 之indexOf方式&#xff08;一&#xff09; //判断访问终端 var browser{versions:function(){var u navigator.userAgent, app navigator.appVersion;return {trident: u.indexOf(Trident) > -1, //IE内核presto: u.indexOf(Presto) > -1, //opera…

Vue路由开启keep-alive缓存页面

mode:hash模式下&#xff1a; HTML部分&#xff1a; <template><div id"app"><keep-alive> <!--使用keep-alive会将页面缓存--><router-view v-if"$route.meta.keepAlive"></router-view></keep-alive> &l…

平安性格测试题及答案_面试要求做性格测试,该怎么做?

为了筛选到更符合岗位&#xff0c;许多企业在招聘时都选择了“性格测试”。比如&#xff0c;像“华为、宝洁、阿里”等这样的大厂&#xff0c;据说每年都有不少人因为性格测试而凉凉&#xff0c;性格测试真有决定你“生死”的作用吗&#xff1f;那么&#xff0c;在做测试题的时…

CSS行内元素和块级元素的水平居中,垂直居中,水平垂直居中实现

常用内联元素&#xff1a;a,img,input,lable,select,span,textarea,font 常用的块级元素&#xff1a;div,p,table,form,h1,h2,h3,h4,h5,h6,dl,ol,ul,li 一、水平居中 行内元素居中&#xff1a; text-align:center 图片&#xff0c;单个块级元素居中&#xff1a;margin-left和…

mysql scrapy 重复数据_大数据python(scrapy)爬虫爬取招聘网站数据并存入mysql后分析...

基于Scrapy的爬虫爬取腾讯招聘网站岗位数据视频(见本头条号视频)根据TIOBE语言排行榜更新的最新程序语言使用排行榜显示&#xff0c;python位居第三&#xff0c;同比增加2.39%&#xff0c;为什么会越来越火&#xff0c;越来越受欢迎呢&#xff0c;背后折射出的是人工智能、机器…

vim 文本一些行注释,替换

按键操作&#xff1a;注释&#xff1a;ctrlv 进入列编辑模式,向下或向上移动光标,把需要注释的行的开头标记起来,然后按大写的I,再插入注释符,比如"#",再按Esc,就会全部注释了。删除&#xff1a;先按v,进入visual模式,横向选中列的个数(如"#"注释符号,需要…

如何在几分钟内安装Red Hat Container Development Kit(CDK)

作为负责开发容器化应用程序提供的可能性的应用程序开发人员或架构师&#xff0c;将所有工具集中在一起以使您入门时几乎没有帮助。 到现在。 红帽容器开发套件&#xff08;CDK&#xff09; 安装变得简单&#xff01; 红帽提供了一个容器开发套件&#xff08;CDK&#xff0…