将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.mzph.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