refurl:http://wenku.baidu.com/view/f6f580c3d5bbfd0a79567336.html
http://aspnetdb.iteye.com/blog/1179469
http://junier.iteye.com/blog/453420 --点对点的
注意点:
1、JMS发送是要用到服务器的,要用ActiveMQ或者OpejJMS作为服务器
下载apache-activemq-5.2.0-bin.zip:http://download.huihoo.com/apache/activemq/20081221-207.html
其他参考资料:
refurl:http://flyer2010.iteye.com/blog/662047 (含JMS简单小例子)
--Oracle官方JMS教程
http://download.oracle.com/otn-pub/jcp/7195-jms-1.1-fr-spec-oth-JSpec/jms-1_1-fr-spec.pdf
--还有就是【Java消息服务第二版这本书】
http://blog.csdn.net/yutel/article/details/3874439 --此书中提到jms有2种模式,一种是队列,一种是点对点。在我看来,广播群发消息就用队列,即时聊天就用点对点
附源码如下:启动时要加3个参数
package testJms; import java.io.*; import javax.jms.*; import javax.naming.*; public class Chat implements javax.jms.MessageListener { private TopicSession pubSession; private TopicPublisher publisher; private TopicConnection connection; private String username; /* Constructor used to Initialize Chat */ public Chat(String topicFactory, String topicName, String username)throws Exception { // Obtain a JNDI connection using the jndi.properties file InitialContext ctx = new InitialContext(); // Look up a JMS connection factory and create the connection TopicConnectionFactory conFactory = (TopicConnectionFactory)ctx.lookup(topicFactory); TopicConnection connection = conFactory.createTopicConnection(); // Create two JMS session objects TopicSession pubSession = connection.createTopicSession(false, Session.AUTO_ACKNOWLEDGE); TopicSession subSession = connection.createTopicSession(false, Session.AUTO_ACKNOWLEDGE); // Look up a JMS topic Topic chatTopic = (Topic)ctx.lookup(topicName); // Create a JMS publisher and subscriber. The additional parameters // on the createSubscriber are a message selector (null) and a true // value for the noLocal flag indicating that messages produced from // this publisher should not be consumed by this publisher. TopicPublisher publisher = pubSession.createPublisher(chatTopic); TopicSubscriber subscriber = subSession.createSubscriber(chatTopic, null, true); // Set a JMS message listener subscriber.setMessageListener(this); // Intialize the Chat application variables this.connection = connection; this.pubSession = pubSession; this.publisher = publisher; this.username = username; // Start the JMS connection; allows messages to be delivered connection.start(); } /* Receive Messages From Topic Subscriber */ public void onMessage(Message message) { try { TextMessage textMessage = (TextMessage) message; System.out.println(textMessage.getText()); } catch (JMSException jmse){ jmse.printStackTrace(); } } /* Create and Send Message Using Publisher */ protected void writeMessage(String text) throws JMSException { TextMessage message = pubSession.createTextMessage(); message.setText(username+": "+text); publisher.publish(message); } /* Close the JMS Connection */ public void close() throws JMSException { connection.close(); } /* Run the Chat Client */ public static void main(String [] args) { try { if (args.length!=3) System.out.println("Factory, Topic, or username missing"); // args[0]=topicFactory; args[1]=topicName; args[2]=username Chat chat = new Chat(args[0],args[1],args[2]); // Read from command line BufferedReader commandLine = new java.io.BufferedReader(new InputStreamReader(System.in)); // Loop until the word "exit" is typed while(true) { String s = commandLine.readLine(); if (s.equalsIgnoreCase("exit")){ chat.close(); System.exit(0); } else chat.writeMessage(s); } } catch (Exception e) { e.printStackTrace(); } } } ======================================================================= ps:又发现一个JMS好教程的地方,我已经粗略浏览过几篇,讲的不错: http://www.360doc.com/content/09/0712/20/18042_4241628.shtml
相关推荐
本示例“java-jms小例子”旨在演示JMS的基本用法。JMS的核心概念包括消息生产者、消息消费者和消息队列/主题。在这个小例子中,我们将探讨如何创建这两者以及如何利用它们进行通信。 1. **消息生产者**:在JMS中,...
JMS的例子是学习和理解这一技术的关键,通过实际操作可以深入领会其工作原理和用法。 在“jmstest”这个压缩包中,我们可能找到一个简单的JMS应用实例。通常,这样的例子会包含生产者(Producer)、消费者...
在本篇《ActiveMQ实战——实现一个简易版的聊天室》中,我们将深入探讨如何利用Apache ActiveMQ构建一个简单的在线聊天应用。ActiveMQ是Apache软件基金会的一个开源项目,它是一款功能强大的消息中间件,用于在...
在聊天室的实时通信中,JMS可以作为后台消息队列,确保消息的可靠传输,即使在高并发情况下也能保持高效。 5. **Servlet API**:提供了一系列接口和类,使得开发人员可以编写Servlet,处理HTTP请求和响应。 6. **...
在一些实例中,我们可能会看到使用Plain Old Java Object(POJO)作为消息监听器的例子。这意味着消息监听器并不需要继承特定的Spring或JMS类,而是作为一个普通的Java对象被注册为消息监听器。这种方式提高了代码...
1. 用户A在聊天室发送一条消息,SpringMVC控制器接收到请求后,将消息封装为JMS消息并发送到ActiveMQ的特定主题或队列。 2. ActiveMQ接收到消息后,将其存储在内存或磁盘中,并通知所有订阅了该主题的客户端有新消息...
这个"JMS开发例子.rar"压缩包文件很可能是包含了一个关于如何使用JMS进行开发的实例教程或代码示例。 在JMS中,有两个主要的角色:生产者(Producer)和消费者(Consumer)。生产者负责创建和发送消息,而消费者则...
JMS(Java Message Service)是Java平台中用于创建和管理消息传递系统的一种API,它允许应用程序之间进行异步通信。JMS提供了一种标准接口,使得应用开发者可以使用不同的消息中间件(Message Broker),如WebLogic ...
**JMS简介** Java消息服务(Java Message Service,简称JMS)是Java平台中用于企业级应用集成的标准化API,它允许应用程序创建、发送、接收和读取消息。JMS提供了一种在分布式环境中可靠地传递信息的方式,使得不同...
在这个"ActiveMQ JMS WEB 例子"中,我们将探讨如何在Web环境中使用ActiveMQ进行消息通信。 首先,了解ActiveMQ的基本概念是必要的。ActiveMQ支持多种协议,如OpenWire、AMQP、STOMP、XMPP和MQTT,使其能够广泛应用...
【JBOSST建立JMS应用实例】 JBOSST(Java Business Open Source Solutions)是一个开源的企业级应用服务器,它提供了全面的中间件服务,包括对Java消息服务(JMS)的支持。JMS是一种标准,用于在分布式环境中传递...
标题中的“JMS分布式例子”指的是Java消息服务(Java Message Service)在分布式环境中的应用示例。JMS是Java平台中用于创建、发送、接收和读取消息的标准API,它提供了一种可靠的消息传递机制,使得不同的应用程序...
标题"jms+spring+activeMq的例子serd和recevice"提到了三个关键术语:JMS(Java Message Service)、Spring框架和ActiveMQ。这表明我们将探讨一个结合了这三个技术的示例,其中"serd"可能是"server"的误拼,而...
**JMS例子** 可能包括创建简单的生产者和消费者,以及更复杂的场景,如实现故障切换、负载均衡或者使用事务确保消息的一致性。例如,一个例子可能演示如何通过JMS API创建一个生产者,向队列发送一条消息,然后创建...
在本例子中,我们将关注如何使用OpenJMS这一开源JMS实现来搭建服务器并进行消息的发送和接收。首先,你需要从官方网站下载最新版本的OpenJMS,解压缩后在bin目录下运行startup.bat启动服务。这会开启一个新窗口,...
WebLogic Server是由Oracle公司提供的一个企业级Java应用服务器,它支持Java EE标准,包括Java消息服务(JMS:Java Message Service)。JMS是一种为应用程序提供创建、发送、接收和读取消息的标准API。在WebLogic中...
Classes contained in javax.jms.jar: javax.transaction.xa.XAResource.class javax.jms.BytesMessage.class javax.jms.Message.class javax.jms.JMSException.class javax.jms.Destination.class javax.jms....