`

jboss 5 : JMS

 
阅读更多
1 添加Destination
    修改域deploy下messaging文件夹下的destinations-service.xml文件
    添加一个mbean:
    <mbean code="org.jboss.jms.server.destination.QueueService"
  name="jboss.messaging.destination:service=Queue,name=OrderBillingQueue"
  xmbean-dd="xmdesc/Queue-xmbean.xml">
  <attribute name="JNDIName">queue/OrderBillingQueue</attribute>
  <depends optional-attribute-name="ServerPeer">
    jboss.messaging:service=ServerPeer
  </depends>
  <depends>jboss.messaging:service=PostOffice</depends>
  <attribute name="RedeliveryDelay">10000</attribute>
  <attribute name="MaxDeliveryAttempts">3</attribute>
 </mbean>

2 添加MDB:

可根据自己的情况修改下面的代码
    

package ejb3inaction.example.buslogic;

import javax.ejb.ActivationConfigProperty;
import javax.ejb.MessageDriven;
import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.MessageListener;
import javax.jms.ObjectMessage;

@MessageDriven(activationConfig={
  @ActivationConfigProperty(propertyName="destinationType",
                propertyValue="javax.jms.Queue"),         
  @ActivationConfigProperty(propertyName="destination",propertyValue="queue/OrderBillingQueue")
}
)
public class OrderBillingMDB implements MessageListener {
 public void onMessage(Message message) {
  ObjectMessage objectMsg = (ObjectMessage)message ;
  
  try {
   Order order = (Order)objectMsg.getObject() ;
   order.setStatus(OrderStatus.COMPLETE) ;
   System.out.printf("order is finished." ) ;
  } catch (JMSException e) {
   e.printStackTrace();
  }
 }

}

3 测试代码
视自己的情况修改:

try {
   Context context = new InitialContext() ;
   
   connectionFactory = (ConnectionFactory)context.lookup("/ConnectionFactory") ;
   destination = (Destination)context.lookup("queue/OrderBillingQueue") ;
  } catch (NamingException e1) {
   e1.printStackTrace();
  }
  Order order = new Order() ;
  order.setBidderId(bidderId) ;
  order.setItems(items) ;
  order.setShippingInfo(shippingInfo) ;
  order.setBidderId(bidderId) ;
  
  order.setStatus(OrderStatus.NEW) ;
  
  System.out.println("调用jms从bill中扣掉所需……,设置订单状态……") ;
  try {
   Connection conn = connectionFactory.createConnection() ;
   Session session = conn.createSession(true, Session.AUTO_ACKNOWLEDGE) ;
   ObjectMessage message = session.createObjectMessage() ;
   message.setObject(order) ;
   
   MessageProducer producer = session.createProducer(destination) ;
   
   producer.send(message) ;
   
   session.commit() ;
   producer.close() ;
   session.close() ;
   conn.close() ;
  } catch (JMSException e) {
   e.printStackTrace();
  }


4 如果context取到的东西为空,则在src下添加jndi.properties
java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces
java.naming.provider.url=localhost:1099
分享到:
评论

相关推荐

    jboss 7 配置 jms

    **JBoss 7 配置 JMS 知识点详解** JBoss Application Server(简称 JBoss AS)是一款开源的企业级 Java 应用服务器,由 Red Hat 公司维护。JBoss 7 是其一个重要的版本,它引入了许多新特性和性能优化。在 JBoss 7 ...

    jboss-jms包

    【JBoss JMS包详解】 JBoss JMS(Java Message Service)是Red Hat公司开发的JMS实现,它是JBoss Application Server的一部分,提供了一个标准、可靠且面向消息的中间件服务。在分布式环境中,JMS作为异步通信的...

    JBOSS建立JMS应用实例

    总结来说,JBOSS中的JMS应用实例涉及了JMS的基本概念、JBOSST的配置、代码编写以及具体的应用场景。通过实践这些步骤,开发者可以掌握如何在JBOSST环境中利用JMS进行高效的数据通信。同时,提供的文档和项目文件为...

    JBoss实战:服务器配置指南

    JBoss AS(Application Server)是一款开源的Java EE应用服务器,提供了全面的企业级服务,包括EJB容器、Web容器、JMS服务、集群与负载均衡等功能。它支持最新的Java EE标准,并且完全免费,因此在企业级开发中得到...

    基于Jboss的jms编程

    5. **Jboss JMS配置**: 在Jboss应用服务器中,JMS服务需要在Jboss配置文件(如`jboss-service.xml`或`standalone.xml`)中正确配置。这通常涉及设置消息代理(例如HornetQ或ActiveMQ),定义目的地(队列或主题)...

    JBOSS建立JMS应用实例(附源码)

    5. **JMS事务管理** - **XAResource**:JBoss支持使用JTA(Java Transaction API)进行事务管理,可以保证消息的原子性、一致性、隔离性和持久性。 - **事务提交与回滚**:根据业务需求,可以决定是使用自动提交...

    jboss服务器下的jms实例

    【JBoss 服务器下的 JMS 实例】 Java 消息服务 (JMS) 是 Java 平台中用于处理异步消息传递的标准API,它在面向服务架构 (SOA) 中扮演着关键角色,特别是在需要与外部系统进行异步通信的企业环境中。JBoss 服务器...

    Jboss5源代码-官方-第二部分

    JBoss5是JBoss企业应用平台(JBoss Enterprise Application Platform)的一个重要版本,它基于Java EE 5规范,为开发者提供了全面的中间件服务,包括Web服务器、EJB容器、JMS消息服务、事务管理等。在这一部分中,...

    jboss5服务器2

    【JBoss5服务器详解】 JBoss5,全称为JBoss Application Server 5,是Red Hat公司推出的基于Java EE(Java Enterprise Edition)规范的开源中间件平台。作为一个强大的Java Web容器,它提供了对多种企业级服务的...

    JBoss AS 5 Development

    ### JBoss AS 5 Development: 关键知识点解析 #### 一、JBoss AS 5 概述 **JBoss AS 5(Application Server 5)**是JBoss组织推出的一款开源应用服务器,它为Java应用程序提供了强大的运行环境。JBoss AS 5在企业...

    jboss 下载(httpwww.jboss.org)

    4. JMS(Java Message Service):支持异步消息传递。 5. JTA(Java Transaction API):处理分布式事务管理。 总的来说,JBoss 作为一个强大的开源应用服务器,因其免费、高效、易用和丰富的功能,深受开发者喜爱...

    Jboss5源代码-官方-第一部分

    1. **核心服务**:JBoss的核心服务包括事务管理、安全管理、命名与目录服务、JMS消息队列等。这部分源代码展示了如何实现这些基础服务,并与Java EE规范相集成。例如,`jboss.getTransaction`包下的源码涉及到JTA...

    (转)JBOSS7.1下开发JMS(HoernetQ)的示例DEMO

    【标题】:“(转)JBOSS7.1下开发JMS(HornetQ)的示例DEMO” 在本文中,我们将深入探讨如何在JBoss Application Server 7.1 (JBoss AS 7.1)环境中开发Java消息服务(JMS)应用程序,特别是使用HornetQ作为消息...

    在JBOSS 环境中配置JMS,在程序中可以通过JNDI 获取连接

    在JBOSS 环境中配置JMS,在程序中可以通过JNDI 获取连接,如消息启动Bean 就可以通过JNDI获取:@MessageDriven(activationConfig = { @ActivationConfigProperty(propertyName = "destinationType", propertyValue ...

    图书:JBoss AS 5开发

    5. **JMS与消息传递**:讨论Java Message Service (JMS)在JBoss AS 5中的应用,如何创建消息生产者和消费者,以及如何配置JMS目的地。 6. **事务管理**:介绍JBoss AS 5的事务服务,包括本地事务和全局事务,以及...

    JBoss at Work: A Practical Guide

    它包含了执行Java EE规范所需的各种组件,如EJB(Enterprise JavaBeans)、JMS(Java Message Service)、JPA(Java Persistence API)、JSF(JavaServer Faces)等,这些都为构建分布式、事务处理和面向服务的架构...

    一台机器部署多个jboss说明

    此文件位于`$JBOSS_HOME/server/default/deploy/jms/`目录下,主要用于配置JMS服务端口。 ```xml &lt;mbean code="org.jboss.mq.il.uil2.UILServerILService"&gt; &lt;attribute name="ServerBindPort"&gt;8093 ``` 同样...

    EJB3+JBOSS5+JPA整合

    **JBOSS5**是一个开源的应用服务器,它实现了Java EE 5规范,包括对EJB3和JPA的支持。JBOSS5提供了一个运行环境,开发者可以在其中部署和运行EJB3应用。它包含了Web服务器、JMS(Java Message Service)、JTA(Java ...

    JBoss5配置相机

    JBoss AS 5是基于EJB 3.0规范的,支持Servlet 2.5和JSP 2.1,同时还包含了对JSF、JPA和JMS等Java技术的支持。 1. **安装JBoss 5** 在Windows和Linux平台上安装JBoss AS 5的步骤大致相似。首先,从官方网站下载...

Global site tag (gtag.js) - Google Analytics