游戏微网站模板,莆田网站建设网,网站建设咨询中心,设计企业介绍 在ONVZ#xff0c;我们将Glassfish 3用作开发和生产应用服务器#xff0c;我们对其性能和稳定性以及周围的广大社区感到非常满意。 我很少遇到在stackoverflow或java.net上没有匹配解决方案的问题。 作为我们开源策略的一部分#xff0c;我们还运行了一个定制的ActiveM… 介绍 在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(Weve received a message: message.getJMSMessageID());} catch (JMSException e) {e.printStackTrace();}}
} Glassfish会将您的bean连接到已配置的队列但是它将尝试使用连接到嵌入式OpenMQ代理的默认ConnectionFactory进行连接。 这不是我们想要的所以我们将指示Glassfish使用哪个ConnectionFactory。 在META-INF文件夹中添加一个名为glassfish-ejb-jar.xml的文件并插入以下内容 ?xml version1.0 encodingUTF-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-jarenterprise-beansejbejb-nameExampleMessageBean/ejb-namemdb-connection-factoryjndi-namejms/connectionFactory/jndi-name/mdb-connection-factorymdb-resource-adapterresource-adapter-midactivemq-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