Sender类,主要用来发送JMS消息
import java.io.OutputStreamWriter; import javax.jms.DeliveryMode; import javax.jms.Destination; import javax.jms.JMSException; import javax.jms.MessageProducer; import javax.jms.Queue; import javax.jms.QueueConnection; import javax.jms.QueueConnectionFactory; import javax.jms.Session; import javax.jms.TextMessage; import javax.naming.Context; import javax.naming.InitialContext; import javax.naming.NamingException; import org.apache.log4j.ConsoleAppender; import org.apache.log4j.Logger; import org.apache.log4j.PatternLayout; public class JMSSender { private static final Logger log = Logger.getLogger(JMSSender.class); private static QueueConnectionFactory factory = null; private static String requestMessage = "Hello, JMS!"; public static void main(String[] args){ String initialContextFactory = "com.tibco.tibjms.naming.TibjmsInitialContextFactory"; String providerURL = "tibjmsnaming://gftsint.nam.nsroot.net:7222"; String queueConnectionFactory = "tech.na.cars.QueueCF"; String requestQueue = "tech.na.cars.vcs2.web.RequestQueue"; ConsoleAppender appender = new ConsoleAppender(); appender.setWriter(new OutputStreamWriter(System.out)); appender.setLayout(new PatternLayout("%-5p [%t]: %m%n")); log.addAppender(appender); int emsMessageTimeout = 60 * 1000 * 60 * 24; try { Context context = new InitialContext(); context.addToEnvironment(Context.INITIAL_CONTEXT_FACTORY, initialContextFactory); context.addToEnvironment(Context.PROVIDER_URL, providerURL); factory = (QueueConnectionFactory) context.lookup(queueConnectionFactory); QueueConnection requestConnection = factory.createQueueConnection(); Session requestSession = requestConnection.createQueueSession(false, Session.AUTO_ACKNOWLEDGE); Destination destination = (Queue) context.lookup(requestQueue); log.info("Create message producer...."); MessageProducer producer = requestSession.createProducer(destination); producer.setDeliveryMode(DeliveryMode.PERSISTENT); producer.setTimeToLive(emsMessageTimeout); log.info("Creating message...."); TextMessage message = requestSession.createTextMessage(requestMessage); log.info("Sending message...."); producer.send(message); } catch (NamingException e) { log.error("Exception", e); } catch (JMSException e) { log.error("Exception", e); } } }
接下来是receiver类,用来接收发送的消息:
import java.io.OutputStreamWriter; import javax.jms.Destination; import javax.jms.JMSException; import javax.jms.Message; import javax.jms.MessageConsumer; import javax.jms.Queue; import javax.jms.QueueConnection; import javax.jms.QueueConnectionFactory; import javax.jms.Session; import javax.jms.TextMessage; import javax.naming.Context; import javax.naming.InitialContext; import javax.naming.NamingException; import org.apache.log4j.ConsoleAppender; import org.apache.log4j.Logger; import org.apache.log4j.PatternLayout; public class JMSReceiver { private static final Logger log = Logger.getLogger(JMSReceiver.class); private static QueueConnectionFactory factory = null; public static void main(String[] args){ String initialContextFactory = "com.tibco.tibjms.naming.TibjmsInitialContextFactory"; String providerURL = "tibjmsnaming://gftsint.nam.nsroot.net:7222"; String queueConnectionFactory = "tech.na.cars.QueueCF"; String responseQueue = "tech.na.cars.vcs2.web.RequestQueue"; ConsoleAppender appender = new ConsoleAppender(); appender.setWriter(new OutputStreamWriter(System.out)); appender.setLayout(new PatternLayout("%-5p [%t]: %m%n")); log.addAppender(appender); try { Context responseContext = new InitialContext(); responseContext.addToEnvironment(Context.INITIAL_CONTEXT_FACTORY, initialContextFactory); responseContext.addToEnvironment(Context.PROVIDER_URL, providerURL); factory = (QueueConnectionFactory) responseContext.lookup(queueConnectionFactory); QueueConnection responseConnection = factory.createQueueConnection(); Session responseSession = responseConnection.createSession(false, Session.CLIENT_ACKNOWLEDGE); Destination responseDestination = (Queue) responseContext.lookup(responseQueue); log.info("Create message consumer...."); MessageConsumer consumer = responseSession.createConsumer(responseDestination); responseConnection.start(); log.info("Receive message...."); Message message = null; while(message == null){ message = consumer.receive(); } String stringMessage = ((TextMessage) message).getText(); log.info("The response message content is " + stringMessage); } catch (NamingException e) { log.error("Exception", e); } catch (JMSException e) { log.error("Exception", e); } } }
手工编写代码的缺陷是每个类都得定义factory和URL等东西,不利于管理
相关推荐
Agorava 是一个实现了 OAuth 1.0a 和 OAuth 2.0 的框架,提供了简单的方式通过社交媒体进行身份认证的功能。 Eclipse的JavaScript插件 JSEditor JSEditor 是 Eclipse 下编辑 JavaScript 源码的插件,提供语法高亮...
Agorava 是一个实现了 OAuth 1.0a 和 OAuth 2.0 的框架,提供了简单的方式通过社交媒体进行身份认证的功能。 Eclipse的JavaScript插件 JSEditor JSEditor 是 Eclipse 下编辑 JavaScript 源码的插件,提供语法高亮...
简单聊天软件CS模式 2个目标文件 一个简单的CS模式的聊天软件,用socket实现,比较简单。 凯撒加密解密程序 1个目标文件 1、程序结构化,用函数分别实现 2、对文件的加密,解密输出到文件 利用随机函数抽取幸运数字 ...
Agorava 是一个实现了 OAuth 1.0a 和 OAuth 2.0 的框架,提供了简单的方式通过社交媒体进行身份认证的功能。 Eclipse的JavaScript插件 JSEditor JSEditor 是 Eclipse 下编辑 JavaScript 源码的插件,提供语法高亮...
Agorava 是一个实现了 OAuth 1.0a 和 OAuth 2.0 的框架,提供了简单的方式通过社交媒体进行身份认证的功能。 Eclipse的JavaScript插件 JSEditor JSEditor 是 Eclipse 下编辑 JavaScript 源码的插件,提供语法高亮...
Agorava 是一个实现了 OAuth 1.0a 和 OAuth 2.0 的框架,提供了简单的方式通过社交媒体进行身份认证的功能。 Eclipse的JavaScript插件 JSEditor JSEditor 是 Eclipse 下编辑 JavaScript 源码的插件,提供语法高亮...
Agorava 是一个实现了 OAuth 1.0a 和 OAuth 2.0 的框架,提供了简单的方式通过社交媒体进行身份认证的功能。 Eclipse的JavaScript插件 JSEditor JSEditor 是 Eclipse 下编辑 JavaScript 源码的插件,提供语法高亮...
Agorava 是一个实现了 OAuth 1.0a 和 OAuth 2.0 的框架,提供了简单的方式通过社交媒体进行身份认证的功能。 Eclipse的JavaScript插件 JSEditor JSEditor 是 Eclipse 下编辑 JavaScript 源码的插件,提供语法高亮...
Agorava 是一个实现了 OAuth 1.0a 和 OAuth 2.0 的框架,提供了简单的方式通过社交媒体进行身份认证的功能。 Eclipse的JavaScript插件 JSEditor JSEditor 是 Eclipse 下编辑 JavaScript 源码的插件,提供语法高亮...
Agorava 是一个实现了 OAuth 1.0a 和 OAuth 2.0 的框架,提供了简单的方式通过社交媒体进行身份认证的功能。 Eclipse的JavaScript插件 JSEditor JSEditor 是 Eclipse 下编辑 JavaScript 源码的插件,提供语法高亮...
Agorava 是一个实现了 OAuth 1.0a 和 OAuth 2.0 的框架,提供了简单的方式通过社交媒体进行身份认证的功能。 Eclipse的JavaScript插件 JSEditor JSEditor 是 Eclipse 下编辑 JavaScript 源码的插件,提供语法高亮...
Agorava 是一个实现了 OAuth 1.0a 和 OAuth 2.0 的框架,提供了简单的方式通过社交媒体进行身份认证的功能。 Eclipse的JavaScript插件 JSEditor JSEditor 是 Eclipse 下编辑 JavaScript 源码的插件,提供语法高亮...
Agorava 是一个实现了 OAuth 1.0a 和 OAuth 2.0 的框架,提供了简单的方式通过社交媒体进行身份认证的功能。 Eclipse的JavaScript插件 JSEditor JSEditor 是 Eclipse 下编辑 JavaScript 源码的插件,提供语法高亮...
Agorava 是一个实现了 OAuth 1.0a 和 OAuth 2.0 的框架,提供了简单的方式通过社交媒体进行身份认证的功能。 Eclipse的JavaScript插件 JSEditor JSEditor 是 Eclipse 下编辑 JavaScript 源码的插件,提供语法高亮...
activemq 消息队列的学习项目 ...Broke cluster:多个broker之前同步消息 消息不在一个地方储存 实现负载均衡 Master Slave:实现高可用 (zookKeeper实现) 某种达到负载均衡和高可用的办法 方案 A可以用用来消费
一个简单的CS模式的聊天软件,用socket实现,比较简单。 凯撒加密解密程序 1个目标文件 1、程序结构化,用函数分别实现 2、对文件的加密,解密输出到文件 利用随机函数抽取幸运数字 简单 EJB的真实世界模型(源代码...
215、写一个方法,实现字符串的反转,如:输入abc,输出cba 53 216、数据类型之间的转换 53 217、如何取得年月日,小时分秒 53 218、如何取得从1970年到现在的毫秒数 53 219、如何格式化日期 53 220、文件和目录(I/...
对于客户机,EntityBean是一种持久性对象,它代表一个存储在持久性存储器中的实体的对象视图,或是一个由现有企业应用程序实现的实体。 Session Bean 还可以再细分为 Stateful Session Bean 与 Stateless ...
51.5. java中有几种方法可以实现一个线程?用什么关键字修饰同步方法? stop()和suspend()方法为何不推荐使用? 25 52. 数据连接池 25 52.1. 连接池的基本原理: 25 52.2. 连接池的工作机制 25 52.3. 建立连接池 26 ...