EJB---JMS---jBoss4

一、服务端开发,建立EJb工程, 创建类MesssageDMB.java

@MessageDriven(activationConfig = {
  @ActivationConfigProperty(propertyName = "destinationType", propertyValue = "javax.jms.Queue"),
  @ActivationConfigProperty(propertyName = "destination", propertyValue = "jms/myqueue") })
public class MesssageDMB implements MessageListener {

 public void onMessage(Message msg) {
  TextMessage textMsg = (TextMessage) msg;
  try {
   System.out.println("收到消息:" + textMsg.getText());
  } catch (JMSException e) {
   System.out.println("获取消息内容失败!");
   e.printStackTrace();
  }
 }

}

 

二、客户端开发

创建project工程,导入jboss的client的jar包。实现客户端类如下:

public class JmsClient {
 public static void main(String[] args) {
  try {
   InitialContext context = new InitialContext();

   //通过JNDI上下文获取QueueConnectionFactory
   QueueConnectionFactory factory = (QueueConnectionFactory)context.lookup("ConnectionFactory");
   System.out.println("1");
   
   //创建queueConnection
   QueueConnection connection = factory.createQueueConnection();
   System.out.println("1");
   //创建Session
   QueueSession session = connection.createQueueSession(false, QueueSession.AUTO_ACKNOWLEDGE);
   
   //创建目标队列
   Queue queue = (Queue)context.lookup("jms/myqueue");
   
   //创建文本消息
   TextMessage msg = session.createTextMessage("hello !!!!!!!!!!!!!");
   
   //创建发送者
   MessageProducer producer = (MessageProducer) session.createProducer(queue);
   
   //发送消息
   producer.send(msg);
   
   session.close();
   connection.close();
   context.close();
   producer.close();
   
  } catch (Exception e) {
   System.out.println("获取上下文失败");
   e.printStackTrace();
  }
  
 }
}

 

三.创建 jndi.properties,放在客户端工程的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

 

四、在jboss服务器中手动配置queue的jndi

在目录如D:\jboss-4.2.1.GA\server\default\deploy中,新建文件jms-service.xml (前缀可以随便写,后面一定要是 -service.xml),文件内容如下:

 

<?xml version="1.0" encoding="UTF-8"?>
<server>
  <mbean code="org.jboss.mq.server.jmx.Queue" name="jboss.mq.destination:service=Queue,name=myqueue">
 <attribute name="JNDIName">jms/myqueue</attribute>
    <depends optional-attribute-name="DestinationManager">jboss.mq:service=DestinationManager</depends>
  </mbean>
</server>

 

 

此实现正对JBoss4.2 验证过是能运行成功的。JBoss5.0 不能正常运行。lookup("connectionFactory") 执行不下去。没找到原因。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值