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

glassfish5_将Glassfish 3连接到外部ActiveMQ 5代理相关推荐

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

    介绍 在ONVZ,我们将Glassfish 3用作开发和生产应用服务器,我们对其性能和稳定性以及周围的广大社区感到非常满意. 我很少遇到在stackoverflow或java.net上没有匹配解决方案 ...

  2. tableau无法建立连接_外部服务连接疑难解答 - Tableau

    本主题描述 Tableau 连接到外部分析扩展程序服务时可能会收到的错误. 注意:Tableau 技术支持人员无法协助编写.调整外部脚本或排除其问题. 与任何分析扩展程序通信时可能会发生的错误 错误消 ...

  3. 自建连接池,通过动态代理增强getConnection()方法,使其调用用close()方法时具有返回连接的功能

    文章目录 一.JDBC 1.概述与原理 2.API介绍 二.连接池 三.动态代理 1.概述与原理 2.API介绍 四.动态代理增强getConnection()方法 1.原因 2.代码思路与实现 3. ...

  4. 连接的外部图形设备可能无法与计算机工作,连接外围设备,可以为计算机提供额外功能,Win10如何使用和管理...

    今天是二十四节气中的第16个节气,秋分.今年过得实在太快,2020年已仅剩100天了.一年过去的三分之二时间,大家都有什么收获?欢迎小伙伴们在评论区留言.书接上回,本节将介绍如何使用与管理外围设备. ...

  5. vrep连接python外部控制器——以对baxter进行力矩控制的配置为例

    本博客的目标是,利用python编写外部控制器,控制vrep中的baxter机器人.在利用python编写控制器之前,为了连接python和vrep,进行了以下环境配置: [vrep 场景配置] 1. ...

  6. docker连接容器外部的mysql

    centos上面部署了docker容器 并且将原来的服务放到的docker的tomcat镜像上 但是现在服务服务连接mysql数据库 mysql.url=jdbc:mysql://localhost: ...

  7. doris ODBC 连接 mysql 外部表

    Centos 数据库 ODBC 版本对应 yum install -y unixODBC unixODBC-devel libtool-ltdl libtool-ltdl-devel#### odbc ...

  8. (8)Artemis检测(僵尸连接、慢消费者、代理异常)

    僵尸连接检测 本节将讨论连接生存时间(TTL)并解释Artemis如何处理客户端崩溃和已经退出但是未完全关闭资源的客户端.没有队列的TTL(即当队列多长时间后没有被使用,如没有消费者,则队列会被删除, ...

  9. python连接wss走自己的代理

    **我开了一个vpn 然后用py写wss连接 怎么才能让他这个连接走我系统代理呢 vpn 开9090端口 set https_proxy=socks5://127.0.0.1:9090 set htt ...

最新文章

  1. Python eval函数用法简介
  2. 第二章 选择符和属性
  3. 百度开发平台提交应用后进行官方认证审核失败?
  4. DELL R430服务器做raid5以及安装操作系统过程
  5. 牛客练习赛29: F. 算式子
  6. 读“产品经理那些事儿”有感
  7. 实现 int 类型(比如id)的模糊查询
  8. Retinex低光照图像增强
  9. 货物列车尾部安全防护装置
  10. android电视手柄游戏,为游戏而生 Android TV的秘密武器露真容
  11. 来自一个曾经200斤现在140斤程序员的减肥成功经验(包含个人认为相对安全的饮食法推荐)
  12. 实战:淘宝新品想抢占市场流量 分三步进行
  13. Python系统学习流程图,教你一步步学习python
  14. 如何有效提高APP排名和下载量(上)
  15. python3数据可视化软件_Python数据可视化工具Plotly
  16. 51单片机控制二相四线步进电机
  17. 用纯css模拟下雪的效果
  18. 3. css-loader
  19. 大数据分析行业发展趋势
  20. webstorm项目上传git遇到的坑

热门文章

  1. Mybatis-Plus基本
  2. 输入框限定保留三位小数点
  3. sql server案例总结
  4. Github Pages + Jekyll 独立博客一小时快速搭建上线指南
  5. Json字符串和对象相互转换
  6. 基于Spring boot,使用idea方便地切换启动环境
  7. 【GitLab】与idea的搭配
  8. html5圆形旋转菜单js,jquery 圆形旋转图片滚动切换效果
  9. linux更改桌面壁纸的脚本,自动更换桌面壁纸的脚本,支持Ubuntu 18.04系统
  10. python 虚拟环境_理解Python虚拟环境