`
dujianmeng
  • 浏览: 15124 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

jboss 7 配置 jms

阅读更多
    最近学习jboss7 正好以前有个jboss 6 的项目 使用了jms,就想移植到 7 下,随之google,baidu了下,都没有好的例子,于是只有看看文档了,结果文档现在还不完整,于是把问题都总结下以免忘记:
     <extension module="org.jboss.as.messaging"/> 配置消息模块
接着复制下面配置:消息队列是java:/queue/test
     <subsystem xmlns="urn:jboss:domain:messaging:1.0">
    <!-- Default journal file size is 10Mb, reduced here to 100k for faster first boot -->
    <journal-file-size>102400</journal-file-size>
    <journal-min-files>2</journal-min-files>
    <journal-type>NIO</journal-type>
    <!-- disable messaging persistence -->
    <persistence-enabled>false</persistence-enabled>

    <connectors>
       <netty-connector name="netty" socket-binding="messaging" />
       <netty-connector name="netty-throughput" socket-binding="messaging-throughput">
          <param key="batch-delay" value="50"/>
       </netty-connector>
       <in-vm-connector name="in-vm" server-id="0" />
    </connectors>

    <acceptors>
       <netty-acceptor name="netty" socket-binding="messaging" />
       <netty-acceptor name="netty-throughput" socket-binding="messaging-throughput">
          <param key="batch-delay" value="50"/>
          <param key="direct-deliver" value="false"/>
       </netty-acceptor>
        <acceptor name="stomp-acceptor">
         <factory-class>org.hornetq.core.remoting.impl.netty.NettyAcceptorFactory</factory-class>
         <param key="protocol" value="stomp" />
         <param key="port" value="61613" />
       </acceptor>
       <in-vm-acceptor name="in-vm" server-id="0" />
    </acceptors>

    <security-settings>
       <security-setting match="#">
           <permission type="createNonDurableQueue" roles="guest"/>
           <permission type="deleteNonDurableQueue" roles="guest"/>
            <permission type="consume" roles="guest"/>
            <permission type="send" roles="guest"/>
       </security-setting>
    </security-settings>

    <address-settings>
       <!--default for catch all-->
       <address-setting match="#">
          <dead-letter-address>jms.queue.DLQ</dead-letter-address>
          <expiry-address>jms.queue.ExpiryQueue</expiry-address>
          <redelivery-delay>0</redelivery-delay>
          <max-size-bytes>10485760</max-size-bytes>
          <message-counter-history-day-limit>10</message-counter-history-day-limit>
          <address-full-policy>BLOCK</address-full-policy>
       </address-setting>
    </address-settings>

    <!--JMS Stuff-->
   <jms-connection-factories>
      <connection-factory name="InVmConnectionFactory">
         <connectors>
            <connector-ref connector-name="in-vm"/>
         </connectors>
         <entries>
            <entry name="java:/ConnectionFactory"/>
         </entries>
      </connection-factory>
      <connection-factory name="RemoteConnectionFactory">
         <connectors>
            <connector-ref connector-name="netty"/>
         </connectors>
         <entries>
            <entry name="RemoteConnectionFactory"/>
         </entries>
      </connection-factory>
      <pooled-connection-factory name="hornetq-ra">
         <transaction mode="xa"/>
         <connectors>
            <connector-ref connector-name="in-vm"/>
         </connectors>
         <entries>
            <entry name="java:/JmsXA"/>
         </entries>
      </pooled-connection-factory>
   </jms-connection-factories>

   <jms-destinations>
      <jms-queue name="testQueue">
         <entry name="queue/test"/>
      </jms-queue>
      <jms-topic name="testTopic">
         <entry name="topic/test"/>
      </jms-topic>
   </jms-destinations>
</subsystem>
接着配置mdb(官方文档没有这个说明,找了半天才发现)
<subsystem xmlns="urn:jboss:domain:ejb3:1.2">
<mdb>
                <resource-adapter-ref resource-adapter-name="hornetq-ra"/>
                <bean-instance-pool-ref pool-name="mdb-strict-max-pool"/>
            </mdb>

端口配置 :

<socket-binding name="messaging" port="5445" />
<socket-binding name="messaging-throughput" port="5455"/>

源码:
QsenderBean.java
/**
* 发送消息类
*/
package com.test.jms;

import javax.annotation.Resource;
import javax.ejb.Remote;
import javax.ejb.Stateless;
import javax.jms.JMSException;
import javax.jms.MessageProducer;
import javax.jms.Queue;
import javax.jms.QueueConnection;
import javax.jms.QueueConnectionFactory;
import javax.jms.QueueSession;
import javax.jms.TextMessage;

/**
* @author babyduxin
*
*/
@Stateless
@Remote(QSender.class)
public class QSenderBean implements QSender {

@Resource(mappedName = "java:/ConnectionFactory")
private QueueConnectionFactory factory;
@Resource(mappedName = "java:/queue/test")
Queue destionation;

public void send() {
QueueConnection conn = null;
QueueSession session = null;
try {
conn = factory.createQueueConnection();
session = conn.createQueueSession(false,
QueueSession.AUTO_ACKNOWLEDGE);
MessageProducer producter = session.createProducer(destionation);
TextMessage msg = session.createTextMessage("hello dujm");
producter.send(msg);
} catch (Exception e) {
e.printStackTrace();
}
finally{
try{
session.close();
conn.close();
}catch(JMSException e){
e.printStackTrace();
}
}

}
}
PrintBean.java 接收消息类

package com.test.jms;

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="java:/queue/test")

})

public class PrintBean implements MessageListener{

@Override
public void onMessage(Message arg0) {
TextMessage tmsg = (TextMessage)arg0;
try {
System.out.println(tmsg.getText());
} catch (JMSException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}

}
完整工程在附件中,由ejb3.1定时器负责启动,ejb3.1的定时功能比3.0进步很大,很方便
0
0
分享到:
评论
1 楼 weisesu 2012-06-27  
不错 

相关推荐

    JBOSS建立JMS应用实例

    2. 配置JMS资源:在JBOSST的配置文件(如standalone.xml或domain.xml)中,需要添加JMS相关的配置,包括连接工厂、队列和主题等。 三、创建JMS应用 1. 创建JMS模块:在JBOSST中,JMS模块定义了消息服务的配置,包括...

    jboss-jms包

    - **配置文件**:在JBoss JMS中,配置通常位于`standalone.xml`或`domain.xml`文件中,定义了连接工厂、目的地(队列和主题)等元素。 - **编程模型**:通过JMS API,开发者可以创建消息生产者、消费者,设置消息...

    JBoss7.1.1配置指南及管理员手册

    7. **JBoss 7配置** 进一步深入,配置包括但不限于以下方面: - 启动和停止服务器 - 配置网络端口和服务端口 - 管理数据源、JMS队列和主题 - 定义安全策略和用户角色 - 配置EJB和Web应用程序 - 管理日志和...

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

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

    jboss服务器下的jms实例

    7. 关闭所有JMS资源。 而使用Spring JMS,开发者只需要关注业务逻辑,无需处理资源创建和管理的繁琐工作。Spring的JMSTemplate提供了一种模板方法模式,封装了JMS的操作,自动处理资源的生命周期,同时也提供了异常...

    jboss的配置

    【JBoss配置详解】 JBoss,作为一款开源的应用服务器,是Java EE平台的重要实现之一。在本文中,我们将深入探讨JBoss的配置过程,包括下载安装、目录结构解析以及关键配置项的调整。 首先,我们来看一下JBoss的...

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

    - **配置JMS资源**:在`standalone.xml`或`domain.xml`配置文件中,配置JMS目的地(如队列或主题)、连接工厂等。这通常涉及到添加必要的XML元素,并指定相关属性。 3. **创建JMS应用程序** - **编写消息生产者**...

    jboss服务器的详细配置

    以下是对标题和描述中涉及的JBoss配置知识点的详细说明: 一、设置控制台登录窗口 默认情况下,JBoss的JMX控制台(http://localhost:8080/jmx-console)无需身份验证即可访问,这可能导致安全隐患。为了增强安全性...

    jboss7_配置指南

    【JBoss7 配置指南】 JBoss Application Server 7 (AS7) 是一款流行的开源应用服务器,由 Red Hat 公司开发,用于部署和管理Java应用程序。本配置指南主要面向那些需要安装和配置 JBoss AS7 的人员,旨在帮助他们...

    基于Jboss的jms编程

    这些库文件使得Spring能够管理和配置JMS资源,如连接工厂和消息模板。 2. **配置文件**: 在EJB工程中,通常没有`web.xml`文件,因此需要通过XML配置文件来设置JMS组件。在提供的配置示例中,使用了Spring的命名...

    jboss安装配置指南

    【JBoss 安装配置指南】 JBoss 是一个基于 J2EE 规范的开源应用服务器,由全球开发者社区共同维护。它完全实现了 J2EE 的核心服务,包括 EJB(Enterprise JavaBeans)、JMS(Java Message Service)、JTS/JTA(Java...

    JBOSS4.2 基本配置(全)

    JBOSS4.2是一款开源的企业级Java应用服务器,它基于Java EE规范,提供了对Web服务、EJB(Enterprise JavaBeans)、JMS(Java Message Service)等众多服务的支持。在进行JBOSS4.2的基本配置时,我们需要关注以下几个...

    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的步骤大致相似。首先,从官方网站下载...

    jboss 集群配置

    JBoss 是一个流行的开源Java应用服务器,它支持多种类型的集群配置,包括EJB、HTTP、JNDI和JMS。在这些集群类型中,HTTP集群尤其重要,因为它专注于处理Web应用的高可用性和负载均衡。HTTP集群主要有两个核心功能:...

    JBOSS端口配置

    3. **`uil2-service.xml`**:此文件用于配置JBoss的消息服务端口,如JMS服务端口等。 4. **`jboss-services.xml`**:此文件用于配置其他服务端口,如EJB服务端口等。 #### 三、具体配置 ##### 1. Web服务端口配置 ...

    ext 和jboss配置

    另一方面,JBOSS是Red Hat公司的一个开源应用服务器,基于Java EE(Enterprise Edition)标准,支持EJB(Enterprise JavaBeans)、JMS(Java Message Service)等多种服务。配置JBOSS主要包括以下几个步骤: 1. **...

    JBoss的安装、配置和部署

    JBoss是一款开源的应用服务器,它基于Java EE(Enterprise Edition)标准,提供了丰富的中间件服务,支持Web应用、EJB(Enterprise JavaBeans)、JMS(Java Message Service)等。在本文中,我们将详细介绍如何进行...

    JBOSS配置.rarJBOSS配置.rarJBOSS配置.rarJBOSS配置.rar

    下面将详细介绍JBOSS配置的相关知识点。 1. **启动配置**:JBOSS的启动配置主要在`standalone.xml`或`domain.xml`文件中,这两个文件定义了服务器的运行模式。`standalone`模式适用于单节点部署,而`domain`模式则...

Global site tag (gtag.js) - Google Analytics