在使用jboss5进行MDB的试验时首先要在jboss5中配置jms 队列。

1)在jboss安装目录下:server\default\deploy\messaging

打开destinations-service.xml文件,加入:

<mbean code="org.jboss.jms.server.destination.QueueService"
name="jboss.messaging.destination:service=Queue,name=ExpiryQueue"
xmbean-dd="xmdesc/Queue-xmbean.xml">
<depends optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer</depends>
<depends>jboss.messaging:service=PostOffice</depends>
</mbean>

启动jboss5,进入http://localhost:8080/jmx-console/(需要事先设置用户名、密码)

在右侧界面点击 service=JNDIViews  ---->  点击List对应的invoke按钮,若出现下图对应的Queue JNDI配置则表示jms Queue队列配置成功

2)编写MDB

java代码如下:

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 = {
@ActivationConfigProperty(propertyName = "destinationType", propertyValue = "javax.jms.Queue"),
@ActivationConfigProperty(propertyName = "destination", propertyValue = "queue/ExpiryQueue")
}
)
public class MyQueueMDBBean implements MessageListener { public void onMessage(Message arg0) {
try {
TextMessage tm = (TextMessage) arg0;
System.out.println("MDB接收到一个消息=" + tm.getText());
} catch (JMSException e) { e.printStackTrace();
} }
}

3)客户端编写

java代码如下:(需要引入jboss安装包下client文件夹中的jar文件)

import javax.jms.Connection;
import javax.jms.ConnectionFactory;
import javax.jms.MessageProducer;
import javax.jms.Queue;
import javax.jms.QueueSession;
import javax.jms.Session;
import javax.jms.TextMessage;
import javax.naming.Context;
import javax.naming.InitialContext; public class Point2PClient { public static void main(String[] args) throws Exception {
Context context = new InitialContext();
ConnectionFactory factory = (ConnectionFactory) context
.lookup("ConnectionFactory");
Queue queue = (Queue) context.lookup("queue/ExpiryQueue");
Connection connection = factory.createConnection(); Session session = connection.createSession(false,
QueueSession.AUTO_ACKNOWLEDGE); TextMessage msg = session.createTextMessage("这是一个文本:####pppppp"); MessageProducer sender = session.createProducer(queue); sender.send(msg); session.close();
connection.close(); System.out.println("+++++Success");
} }

配置文件如下:(需放置在工程的src下)

java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces
java.naming.provider.url=localhost

4)运行结果如下:

注意事项:

1.javax.naming.NameNotFoundException: mytopic not bound 

  出现该异常表示你的jms队列配置错误,或EJB和客户端中的jms队列写错

2.Toipc队列的配置和使用方式与Queue方式类似,可以试着尝试将上述代码中的Queue改为Topic进行尝试

jboss5+EJB3+MDB Queue的更多相关文章

  1. jboss8+EJB3+MDB Queue

    1)在使用jboss8即WildFly进行MDB的试验时首先要在jboss8中配置jms 队列. 我使用的是修改配置文件的方式配置Jms Queue队列. 进入jboss8 安装目录的standalo ...

  2. ejb3: message drive bean(MDB)示例

    上一篇已经知道了JMS的基本操作,今天来看一下ejb3中的一种重要bean:Message Drive Bean(mdb) 如果要不断监听一个队列中的消息,通常我们需要写一个监听程序,这需要一定的开发 ...

  3. 一个基于JBoss5.1+EJB3.0 登陆应用

    花了几天的时间研究了一下EJB的使用,一直以来都主要是在写终端中的程序,对Java框架的相关的开发非常不熟悉,中间遇到了不少麻烦,还好总算都攻克了.写篇日志记录一下. 经验总结 为什么选择JBoss5 ...

  4. EJB3+JBoss5+Myeclipse9创建HelloWorld实例

    本实例用到的工具 1. jboss5 (配置不做介绍,谷歌度娘都有) 2. MyEclipse 9 实例创建 1.EJB类创建 打开MyEclipse 9 中右上角如下选项  再新建一个EJB项目 新 ...

  5. EJB3.0中的session bean以及MDB解析

    版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/aboy123/article/details/24587133 大型业务系统面临的主要问题就是高并发 ...

  6. EJB3 阶段总结+一个EJB3案例 (1)

    经过一段时时间的学习,对EJB3的相关知识和jboss8的配置有了大概的了解. 网上对EJB的评论很多,基本都是负面的,都表示EJB太过于沉重,不容易维护.但通过这段时间的学习,私下认为,EJB3在某 ...

  7. jboss EAP 6.2 + Message Drive Bean(MDB) 整合IBM Webshpere MQ 7.5

    上一篇我们知道了消息驱动Bean的基本用法,实际大型分布式企业应用中,往往会采用高性能的商业Queue产品,比如IBM Webshpere MQ(目前最新版本是7.5 ),下面讲解下如何在Jboss ...

  8. EJB3.0 EJB开发消息驱动bean

    (7)EJB3.0 EJB开发消息驱动bean JMS 一: Java消息服务(Java Message Service) 二:jms中的消息 消息传递系统的中心就是消息.一条 Message 由三个 ...

  9. EJB3.0

    由于EJB2.0的复杂性,在Spring和Hibernate[1]  等轻量级框架出现后,大量的用户转向应用轻量级框架.在大家的呼声中, EJB 期待已久的EJB3.0规范终于发布了.在本文中将对新的 ...

随机推荐

  1. [K8S]污点调度

    如果不希望某个节点被调度可以使用以下命令进行设置  kubectl taint node master01 node-role.kubernetes.io/master="":No ...

  2. json&pickle

    用于序列化的两个模块 json,用于字符串 和 python数据类型间进行转换pickle,用于python特有的类型 和 python的数据类型间进行转换Json模块提供了四个功能:dumps.du ...

  3. Java带图片预览功能的图片上传兼容火狐ie

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  4. HDU 5618 Jam's problem again (cdq分治+BIT 或 树状数组套Treap)

    题意:给n个点,求每一个点的满足 x y z 都小于等于它的其他点的个数. 析:三维的,第一维直接排序就好按下标来,第二维按值来,第三维用数状数组维即可. 代码如下: cdq 分治: #pragma ...

  5. Android draw Rect 坐标图示

    前两天在博客发了在例子 android Canvas类介绍 http://byandby.javaeye.com/blog/825330 建议大家 点进去 看一看 不然下边没办法 继续啊. 我还是把这 ...

  6. cxf-rs 和 swagger 的点

    1. 从web.xml 说起 <servlet> <servlet-name>CXFServlet</servlet-name> <servlet-class ...

  7. JS数组去重算法实现

    之前一段时间一直在准备面试, 因而博客太久没更新: 现在基本知识点都复习完毕, 接下来就分享下 面试的一些常见问题: 去正规的互联网公司笔试.面试有很大的概率会碰到 使用javascript实现数组去 ...

  8. 第一部分 Mysql的基础

    一.登录: mysql -h localhost -u root -p #其中,-h表示后面跟着的是服务器主机地址,-u后面跟着的是用户名,-p表示密码# 本地测试: 账号: 二.也可以省略写成: m ...

  9. Java反射reflection与注解annotation的应用(自动测试机)

    一.关于自动测试机 1.什么是自动测试机? 对类中的指定方法进行批量测试的工具 2.自动测试机有什么用? a.避免了冗长的测试代码 当类中的成员方法很多时,对应的测试代码可能会很长,使用测试能够让测试 ...

  10. NET 时间字符串转换

    // 把指定格式的日期字符串转换为时间:2018/11/1 0:00:00 DateTime.ParseExact("2018a11","yyyyaMM",Sy ...