最近学习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进步很大,很方便
分享到:
相关推荐
2. 配置JMS资源:在JBOSST的配置文件(如standalone.xml或domain.xml)中,需要添加JMS相关的配置,包括连接工厂、队列和主题等。 三、创建JMS应用 1. 创建JMS模块:在JBOSST中,JMS模块定义了消息服务的配置,包括...
- **配置文件**:在JBoss JMS中,配置通常位于`standalone.xml`或`domain.xml`文件中,定义了连接工厂、目的地(队列和主题)等元素。 - **编程模型**:通过JMS API,开发者可以创建消息生产者、消费者,设置消息...
7. **JBoss 7配置** 进一步深入,配置包括但不限于以下方面: - 启动和停止服务器 - 配置网络端口和服务端口 - 管理数据源、JMS队列和主题 - 定义安全策略和用户角色 - 配置EJB和Web应用程序 - 管理日志和...
在JBOSS 环境中配置JMS,在程序中可以通过JNDI 获取连接,如消息启动Bean 就可以通过JNDI获取:@MessageDriven(activationConfig = { @ActivationConfigProperty(propertyName = "destinationType", propertyValue ...
7. 关闭所有JMS资源。 而使用Spring JMS,开发者只需要关注业务逻辑,无需处理资源创建和管理的繁琐工作。Spring的JMSTemplate提供了一种模板方法模式,封装了JMS的操作,自动处理资源的生命周期,同时也提供了异常...
【JBoss配置详解】 JBoss,作为一款开源的应用服务器,是Java EE平台的重要实现之一。在本文中,我们将深入探讨JBoss的配置过程,包括下载安装、目录结构解析以及关键配置项的调整。 首先,我们来看一下JBoss的...
- **配置JMS资源**:在`standalone.xml`或`domain.xml`配置文件中,配置JMS目的地(如队列或主题)、连接工厂等。这通常涉及到添加必要的XML元素,并指定相关属性。 3. **创建JMS应用程序** - **编写消息生产者**...
以下是对标题和描述中涉及的JBoss配置知识点的详细说明: 一、设置控制台登录窗口 默认情况下,JBoss的JMX控制台(http://localhost:8080/jmx-console)无需身份验证即可访问,这可能导致安全隐患。为了增强安全性...
【JBoss7 配置指南】 JBoss Application Server 7 (AS7) 是一款流行的开源应用服务器,由 Red Hat 公司开发,用于部署和管理Java应用程序。本配置指南主要面向那些需要安装和配置 JBoss AS7 的人员,旨在帮助他们...
这些库文件使得Spring能够管理和配置JMS资源,如连接工厂和消息模板。 2. **配置文件**: 在EJB工程中,通常没有`web.xml`文件,因此需要通过XML配置文件来设置JMS组件。在提供的配置示例中,使用了Spring的命名...
【JBoss 安装配置指南】 JBoss 是一个基于 J2EE 规范的开源应用服务器,由全球开发者社区共同维护。它完全实现了 J2EE 的核心服务,包括 EJB(Enterprise JavaBeans)、JMS(Java Message Service)、JTS/JTA(Java...
JBOSS4.2是一款开源的企业级Java应用服务器,它基于Java EE规范,提供了对Web服务、EJB(Enterprise JavaBeans)、JMS(Java Message Service)等众多服务的支持。在进行JBOSS4.2的基本配置时,我们需要关注以下几个...
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 是一个流行的开源Java应用服务器,它支持多种类型的集群配置,包括EJB、HTTP、JNDI和JMS。在这些集群类型中,HTTP集群尤其重要,因为它专注于处理Web应用的高可用性和负载均衡。HTTP集群主要有两个核心功能:...
3. **`uil2-service.xml`**:此文件用于配置JBoss的消息服务端口,如JMS服务端口等。 4. **`jboss-services.xml`**:此文件用于配置其他服务端口,如EJB服务端口等。 #### 三、具体配置 ##### 1. Web服务端口配置 ...
另一方面,JBOSS是Red Hat公司的一个开源应用服务器,基于Java EE(Enterprise Edition)标准,支持EJB(Enterprise JavaBeans)、JMS(Java Message Service)等多种服务。配置JBOSS主要包括以下几个步骤: 1. **...
JBoss是一款开源的应用服务器,它基于Java EE(Enterprise Edition)标准,提供了丰富的中间件服务,支持Web应用、EJB(Enterprise JavaBeans)、JMS(Java Message Service)等。在本文中,我们将详细介绍如何进行...
配置的灵活性和可定制性使得JBoss AS 7能够适应各种复杂的应用场景。 ##### 2. 部署 JBoss AS 7支持多种部署方式,包括WAR、EAR、RAR、JAR等包格式。应用可以通过热部署的方式动态加载,无需重启服务器即可更新应用...