- 浏览: 332869 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
di1984HIT:
谢谢,写的不错。
使用hector操作Cassandra -
mr_von:
非常感谢!
paoding的分词使用 -
howgoo:
http://www.dhtmlx.com/docs/prod ...
dhtmlxGrid分页与排序 -
青春的、脚步:
谢谢
spring-data-mongodb的MongoTemplate 使用小例子 -
青春的、脚步:
xiaofancn 写道青春的、脚步 写道这个能查询都个值在某 ...
spring-data-mongodb的MongoTemplate 使用小例子
JBoss中先用xml文件定义我们的消息管道
定义规则是后最为XXXXXX-service.xml文件,
我定义为snailteam-service.xml
定义我们的Queue消息管道
name=snailteamQueue
JNDIName queue/snailteam
定义我们的
Topic消息管道
name=snailteamTopic
JNDIName topic/snailteamTopic
如下
<?xml version="1.0" encoding="UTF-8"?> <server> <!-- 在Jboss中用xml定义Queue消息管道,单用户发送,接受为单用户 --> <mbean code="org.jboss.mq.server.jmx.Queue" name="jboss.mq.destination:service=Queue,name=snailteamQueue"> <attribute name="JNDIName">queue/snailteamQueue</attribute> <depends optional-attribute-name="DestinationManager">jboss.mq:service=DestinationManager</depends> </mbean> <!-- 在Jboss中用xml定义Topic消息管道,单用户发送,接受可为单用户 --> <mbean code="org.jboss.mq.server.jmx.Topic" name="jboss.mq.destination:service=Topic,name=snailteamTopic"> <attribute name="JNDIName">topic/snailteamTopic</attribute> <depends optional-attribute-name="DestinationManager">jboss.mq:service=DestinationManager</depends> </mbean> </server>
放到目录中
Myeclipse中启动JBoss,
控制台观察到如下信息,说明发布成功
[TopicService] Topic[topic/snailteamTopic] started, fullSize=200000, pageSize=2000, downCacheSize=2000 [QueueService] Queue[queue/snailteamQueue] started, fullSize=200000, pageSize=2000, downCacheSize=2000
接着写我们服务端的消息管道监听Bean(消息驱动Bean)
Myeclipse中新建一个EJB项目,
别忘了将JBoss的jar包添加进我们的lib中
package org.snailtea.message; import javax.ejb.ActivationConfigProperty; import javax.ejb.MessageDriven; import javax.jms.JMSException; import javax.jms.Message; import javax.jms.MessageListener; import javax.jms.TextMessage; @MessageDriven(activationConfig = { //propertyValue = "javax.jms.Queue" 用来监听javax.jms.Queue消息 @ActivationConfigProperty(propertyName = "destinationType", propertyValue = "javax.jms.Queue"), //propertyValue = "queue/snailteamQueue" 监听的消息管道 @ActivationConfigProperty(propertyName = "destination", propertyValue = "queue/snailteamQueue"), }) public class MessageDrivenBean implements MessageListener { public void onMessage(Message message) { //Message接受到的消息,我们发送的是TextMessage。 TextMessage msg = (TextMessage)message; try { //简单的把消息控制台输出 System.out.println(msg.getText()); } catch (JMSException e) { e.printStackTrace(); } } }
同样的步骤,新建一个消息Bean,ReceiveBean
package org.snaiteam.message; import javax.ejb.ActivationConfigProperty; import javax.ejb.MessageDriven; import javax.jms.JMSException; import javax.jms.Message; import javax.jms.MessageListener; import javax.jms.TextMessage; @MessageDriven(mappedName = "jms/ReceiveBean", activationConfig = { //propertyValue = "topic/snailteamTopic" 监听的消息管道 @ActivationConfigProperty(propertyName = "destination", propertyValue = "topic/snailteamTopic"), //propertyValue = "javax.jms.Topic" 用来监听javax.jms.Topic消息 @ActivationConfigProperty(propertyName = "destinationType", propertyValue = "javax.jms.Topic") }) public class ReceiveBean implements MessageListener { public void onMessage(Message message) { TextMessage msg = (TextMessage) message; try { //简单的打印我们的消息 System.out.println(this.getClass()+msg.getText()); } catch (JMSException e) { e.printStackTrace(); } } }
开发好我们消息驱动Bean了,发布到JBoss容器中
控制台会输出
STARTED EJB: org.snaiteam.message.MessageDrivenBean ejbName: MessageDrivenBean STARTED EJB: org.snaiteam.message.ReceiveBean ejbName: ReceiveBean
发布成功。
开发我们的客户端,
为了能找到JBossRMI接口
我们需要定义一个jndi.properties文件,src目录下
java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory java.naming.provider.url=localhost:1099
新建一个类 QueueSender.java
public static void main(String[] args) { try { //读取jndi.properties文件中的参数 InitialContext ctx = new InitialContext(); //连接JBoss连接工厂 QueueConnectionFactory factory = (QueueConnectionFactory)ctx.lookup("ConnectionFactory"); QueueConnection conn = factory.createQueueConnection(); //false不需要事务 QueueSession session = conn.createQueueSession(false,QueueSession.AUTO_ACKNOWLEDGE); //查找queue/snailteamQueue消息管道 Destination destination = (Destination)ctx.lookup("queue/snailteamQueue"); MessageProducer producer = session.createProducer(destination); //向管道发送消息 producer.send(session.createTextMessage("中国小樊")); //关闭连接会话 session.close(); //关闭连接 conn.close(); } catch (NamingException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (JMSException e) { // TODO Auto-generated catch block e.printStackTrace(); } }
新建一个类 TopicSender.java
public static void main(String[] args) { // TODO Auto-generated method stub try { //读取jndi.properties文件中的参数 InitialContext ctx = new InitialContext(); //连接JBoss连接工厂 TopicConnectionFactory factory = (TopicConnectionFactory)ctx.lookup("ConnectionFactory"); TopicConnection conn = factory.createTopicConnection(); //false不需要事务 TopicSession session = conn.createTopicSession(false,TopicSession.AUTO_ACKNOWLEDGE);//false不需要事务 //查找topic/snailteamTopic消息管道 Destination destination = (Destination)ctx.lookup("topic/snailteamTopic"); MessageProducer producer = session.createProducer(destination); //向管道发送消息 producer.send(session.createTextMessage("中国小樊")); session.close(); conn.close(); System.out.println("ok"); } catch (NamingException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (JMSException e) { // TODO Auto-generated catch block e.printStackTrace(); } }
运行,观察我们的控制台,JBoss是否会输出我们发送的消息
我们可以多写几个消息Bean,用来监听JBoss容器的消息管道。
发表评论
-
spring cloud gateway 全局过滤器。
2019-03-17 23:11 534spring cloud gateway 网关 ... -
elasticsearch 5.4搜索
2017-05-19 08:37 148@Test public void t ... -
netty简单的操作memcached
2017-04-19 18:59 989pom文件 <dependency> ... -
juc系列-Executor框架
2017-03-20 13:34 710转自 juc系列-Executor框架 什 ... -
ReentrantLock 类
2017-03-19 21:11 11.1 什么是reentrantlock java.u ... -
juc之CountDownLatch、CyclicBarrier和Semaphore例子
2017-03-19 17:23 846import java.util.concurren ... -
netty客户端与服务端例子
2017-03-12 20:07 2810package com.snailteam.nett ... -
freemaker集成spring
2017-02-26 19:00 578<bean id="freeMark ... -
spring集成Hessian插件配置改成自动注入。
2017-02-10 15:39 848原来的配置 <bean name="/ ... -
web开发模版
2017-02-09 14:42 0# Rules reminder: # DEBUG &l ... -
Java多线程
2017-02-04 14:39 525线程状态图 新建状态(New): ... -
hash冲突解决
2017-01-23 18:30 4701、开放地址法有一个公式: m是hash表长度,di ... -
mybatis +spring 分库
2015-04-30 17:56 353<context:component-scan b ... -
Java并发任务处理例子
2014-02-12 16:06 1142public void init() { su ... -
JAVA动态代理模式
2012-10-03 01:01 1200这是我要实现的效果 public static ... -
paoding的分词使用
2012-06-13 21:30 4875paoding下载 http://code.googl ... -
使用spring-hadoop操作hadoop
2012-05-20 02:12 32参考文章 http://blog.springsource. ... -
solr3.5集成paoding和位置搜索及对solrj的使用。
2012-04-28 02:12 2013http://xiaofancn.iteye.com/blog ... -
日期处理DateUtils
2012-03-24 09:47 4849import java.text.SimpleDateF ... -
Cassandra的数据分布情况测试
2012-03-16 15:09 20471、规划种子节点ip和Token值的对应 4个种子 ...
相关推荐
在本教程中,我们将深入探讨如何在JBOSS 4.0.4.GA环境下开发和部署ejb2.0的消息驱动Bean。 【描述】: 尽管没有提供具体的描述,但我们可以推断,这篇博客可能涵盖了以下内容:设置JBOSS服务器环境,配置JMS资源,...
在"Jboss下开发ejb应用之一消息驱动bean的应用.doc"文档中,可能包含了关于如何在Jboss环境中创建、配置和测试MDB的详细步骤,包括具体的代码示例、配置文件内容和可能出现的问题及解决方案。建议详细阅读此文档,以...
对于实体Bean中的属性,可以使用`@Id`注解声明主键,通常配合`@GeneratedValue`注解自动生成主键值。其他字段可以使用`@Column`注解进行数据库列的映射。如果需要处理一对一、一对多或多对多的关系,可以使用`@...
消息驱动Bean是Java EE中用于处理异步消息的一种特殊类型的EJB。在EJB2中,MDB主要用于接收来自消息队列或主题的消息,处理后可进一步触发业务逻辑或其他操作。 ##### 2. **创建queue和topic** 在JBOSS中,创建...
- **版本背景**:JBoss4.0.x是基于JBoss3.2.x开发而来,继承了后者在企业级应用中的稳定性,并在此基础上进行了功能增强和技术升级。 - **J2EE1.4认证**:JBoss4.0.x获得了J2EE1.4认证,意味着它支持最新的Java企业...
EJB分为三种主要类型:会话Bean(Session Beans)、实体Bean(Entity Beans)和消息驱动Bean(Message-driven Beans)。 二、会话Bean 会话Bean代表客户端的临时业务逻辑,它们不持久化数据,而是处理业务逻辑并...
在实验中,你可能还会学习到EJB的接口定义、实体Bean(Entity Bean,用于持久化数据)、消息驱动Bean(Message-Driven Bean,用于处理消息队列)以及EJB的生命周期管理。此外,理解EJB容器如何处理事务、安全性、...
在JBoss这样的应用服务器中,EJB提供了三种主要的bean类型:实体Bean(Entity Bean)、会话Bean(Session Bean)和消息驱动Bean(Message-Driven Bean)。下面将详细探讨这三种bean的开发模式。 1. 实体Bean...
总结来说,使用Eclipse和JBoss开发EJB 3.x应用是一种高效且灵活的方式,它结合了IDE的强大功能和EJB的高级服务。通过注解驱动的编程模型和强大的依赖注入机制,开发者可以专注于业务逻辑,而不是繁琐的基础设施代码...
在Java企业级应用中,Message Driven Bean (MDB) 是一种特殊类型的Enterprise JavaBean (EJB),用于处理异步消息。MDBs 主要用于接收和处理来自消息中间件(如JMS, Java Message Service)的消息,是实现解耦和基于...
3. **EJB开发**:详述EJB3.1规范,包括实体Bean、会话Bean和消息驱动Bean的创建与使用,以及无状态和有状态会话Bean的区别。 4. **Servlet和JSP**:介绍Servlet生命周期、JSP页面转换过程,以及如何在JBOSS上配置和...
对于EJB,会详细讨论实体Bean、会话Bean和消息驱动Bean的开发与管理,包括生命周期管理、事务处理、安全性设置等内容。 JBoss对Web服务的支持也是本书的重点之一。读者将学习如何在JBoss上创建和发布SOAP和RESTful ...
EJB组件主要有三种类型:会话bean(Session Beans)、实体bean(Entity Beans)和消息驱动bean(Message-Driven Beans),分别对应于临时逻辑、持久化对象和异步消息处理。 EJB的开发涉及到多个关键概念,如容器...
在IT行业中,开发企业级应用程序通常涉及到多个技术的集成,如Eclipse作为IDE,Jboss作为应用服务器,以及MySql作为数据库系统。本教程将详细阐述如何利用这些工具来开发EJB(Enterprise JavaBeans)。 **Eclipse**...
### JBoss ESB 开发手册概览 #### JBoss ESB 的主要特性 JBoss ESB,即Enterprise Service Bus,是Red Hat JBoss家族中的一员,专注于企业级服务总线解决方案,旨在简化不同应用程序间的集成与通信。其核心功能...
1. **EJB 3.x**:深入讲解企业级JavaBeans 3.x规范,包括无注解编程、会话bean、实体bean、消息驱动bean的使用,以及持久化机制。 2. **JPA与Hibernate**:介绍Java Persistence API和Hibernate的关系,如何配置...
本文将详细介绍如何使用 jBoss AS 4.2 和 MyEclipse 6.5 进行 EJB 3.0 的实体 Bean 开发。 #### 二、环境搭建 1. **安装开发工具** - **MyEclipse 6.5**: 一个基于 Eclipse 的集成开发环境,支持 Java 应用程序...
在本文中,我们将深入探讨如何使用Eclipse集成开发环境(IDE)与JBoss Application Server 5相结合,利用Enterprise JavaBeans(EJB)3.0规范进行应用程序开发。EJB3是Java EE(企业版)平台的一个重要组成部分,它...