- 浏览: 422934 次
- 性别:
文章分类
最新评论
-
wrw_ahut:
你这个怎么停下来?怎么跳转activity
Android启动界面实现 -
huiqoo:
高仿UC半透明MENU菜单(有图有真相) -
wenzhixin:
多谢分享~
Android启动界面实现 -
orange9711:
学习学习
Android启动界面实现 -
qinweiping:
问下楼主 好像这个反编译 只能看到程序的主体结构吧 还是和源程 ...
APK反编译利器Apktool下载及用法介绍
一个JMS应用实例(代码来自试验项目)
功能描述
顾客在一个电子商务网站如果决定购买某一商品,则进入"展示购物篮商品"页面(ShowQuoteServlet.java),点击"Submit Order"按钮下订单,此项操作将调用
(下订单)
CartBean.java(购物篮对象)的purchase()方法,在该方法中将实例化一个订单对象(Order),产生一个Order ID,然后将Order ID通过sendMessage()方法(亦即MessageSender.java类的同名方法)作为一条"消息"发送给JMS服务器,然后,由"订单处理"(OrderProcessorBean.java)消息驱动Bean进行接受,处理完转帐等事宜后,将该订单的标志字段设为"approved",从而完成一次交易。顾客将看到如下的成功信息:
(购买成功)
代 码
1、"展示购物篮商品"页面(ShowQuoteServlet.java)
… …
/*
*如果顾客点击"Submit Order"按钮
*/
if (request.getParameter("Order") != null) {
/*
* 将购物篮转化为订单,完成付款功能(应用JMS)
*/
String orderId = cart.purchase();
/*
* 将orderID放入 request中以便JSP 能够得到
*/
request.setAttribute("orderID", orderId );
/*
* 清除购物篮,以便顾客能购继续购物
*/
cart.clear();
/*
* 转向成功页
*/
this.getServletContext().getRequestDispatcher("/receipt.jsp").forward(request, response);
return;
}
… …
2、CartBean.java(购物篮对象)的purchase()方法和sendMessage()方法
… …
/**
* 购买购物篮中的商品。
购物篮对象将在数据库里创建一个
* 订单。
*
* @返回 Order ID
*/
public String purchase() {
try {
/*
* 锁定 order home 对象
*/
OrderHome home=getOrderHome();
/*
* 创建order
*/
String orderID = makeUniqueID();
Order order=home.create(orderID, owner,"unverified", subTotal,taxes);
/*
* 创建 orderlineitems(订购商品列表)对象
*/
Vector orderItems=addOrderLineItems(order);
/*
* 将orderlineitems存入Order
*/
order.setLineItems(orderItems);
/*
* 发送JMS消息到topic
*/
sendMessage(orderID);
/*
* 返回 order ID
*/
return orderID;
} catch (Exception e) {
throw new EJBException(e);
}
}
/*
*
*发送JMS消息到topic
*@param JMS message, 在这里是 orderId
*/
private void sendMessage(String message) throws Exception{
try{
MessageSender sender=new MessageSender();
sender.sendMessage(message);
}catch(Exception ex){
throw ex;
}
}
… …
3、MessageSender.java类
package examples;
import java.io.*;
import java.util.*;
import javax.transaction.*;
import javax.naming.*;
import javax.jms.*;
/*
*
* 这个类发送JMS Text message 到topic
*/
public class MessageSender{
/*
* 定义 JNDI context factory。
*/
public final static String JNDI_FACTORY="WebLogic.jndi.WLInitialContextFactory";
/*
* 定义 JMS connection factory JNDI 名。
*/
public final static String JMS_FACTORY="jasmine.examples.jms.TopicConnectionFactory";
/*
* 定义JMS topic JNDI 名。
*/
public final static String TOPIC="jasmine.examples.jms.orderProcess";
/*
* 定义Server URL
*/
public final static String URL="t3://localhost:7001";
/*
* 定义JMS connection factory
*/
protected TopicConnectionFactory tconFactory;
/*
* 定义JMS topic connection
*/
protected TopicConnection tcon;
/*
* 定义 JMS topic session
*/
protected TopicSession tsession;
/*
* 定义 JMS topic publisher
*/
protected TopicPublisher tpublisher;
/*
* 定义 JMS topic
*/
protected Topic topic;
/*
* 定义 JMS TextMessage
*/
protected TextMessage msg;
/*
*
* 为发送messages 到一个JMS Topic
* 创建所有必要的对象。
*
* @param ctx JNDI initial context
* @param topicName name of topic
* @exception NamingExcpetion if problem occurred with the JNDI context interface
* @exception JMSException if JMS fails to initialize due to internal error
*
*/
public void init(Context ctx, String topicName)
throws NamingException, JMSException{
/*
* 锁定 Topic connection factory JNDI
*/
tconFactory = (TopicConnectionFactory) ctx.lookup(JMS_FACTORY);
/*
* 创建一个 topic connection factory
*/
tcon = tconFactory.createTopicConnection();
/*
* 创建一个 topic session
*/
tsession = tcon.createTopicSession(false, Session.AUTO_ACKNOWLEDGE);
/**
* 锁定Topic JNDI
*/
topic = (Topic) ctx.lookup(topicName);
/**
* 创建一个 publisher
*/
tpublisher = tsession.createPublisher(topic);
/**
* 创建Textmessage
*/
msg = tsession.createTextMessage();
tcon.start();
}
/**
* 创建所有必要的JMS 对象同时发送一个message 到一个JMS topic.
* @params message message to be sent
* @exception JMSException if JMS fails to send message due to internal error
*
*/
public void sendMessage(String message) throws JMSException {
try{
InitialContext ctx= getInitialContext(URL);
init(ctx,TOPIC);
send(message);
}catch(Exception ex){
throw new JMSException( ex.getMessage());
}finally{
close();
}
}
/**
* 发送一个message 到一个JMS topic。
*
* @params message message to be sent
*/
public void send(String value)
throws JMSException {
msg.setText(value);
tpublisher.publish(msg);
}
/**
* 关闭 JMS 对象。
*
* @exception JMSException if JMS fails to close objects due to internal error
*/
public void close()
throws JMSException {
tpublisher.close();
tsession.close();
tcon.close();
}
/**
* 返回应用服务器初始化环境上下文信息。
*/
protected static InitialContext getInitialContext(String url)
throws NamingException {
Hashtable env = new Hashtable();
env.put(Context.INITIAL_CONTEXT_FACTORY, JNDI_FACTORY);
env.put(Context.PROVIDER_URL, url);
env.put("WebLogic.jndi.createIntermediateContexts", "true");
return new InitialContext(env);
}
/**
* main() 方法。用于测试该类。
*
* @param args WebLogic Server URL
* @exception Exception if operation fails
*/
public static void main(String[] args)
throws Exception{
if (args.length != 1) {
System.out.println("Usage: java examples.jms.topic.TopicSend WebLogicURL");
return;
}
InitialContext ic = getInitialContext(args[0]);
MessageSender sender = new MessageSender();
sender.init(ic, TOPIC);
sender.send("123456");
sender.close();
}
}
4、"订单处理"(OrderProcessorBean.java)消息驱动Bean
package examples;import javax.ejb.*;
import javax.jms.*;
import javax.naming.*;
import javax.rmi.PortableRemoteObject;
/**
* 此消息驱动(message-driven) bean接受JMS messages
* 以便实现购买过程。届时将执行order processing。
*/
public class OrderProcessorBean implements MessageDrivenBean, MessageListener {
protected MessageDrivenContext ctx;
/**
* 这是消息驱动(message-driven)beans 拥有的一个商业方法。
* 在此我们执行真正的order processing
*/
public void onMessage(Message msg) {
TextMessage tm = (TextMessage) msg;
try {
String orderID = tm.getText();
Context ctx = new InitialContext();
OrderHome home = (OrderHome)
PortableRemoteObject.narrow(
ctx.lookup("OrderHome"), OrderHome.class);
Order order = home.findByPrimaryKey(orderID);
/*
* 在此我们可以执行其他的任务:
*
* - 检查用户的信用卡credit并进行划帐操作。
*
* - 检查库存确保商品可卖。
*
* - 检查送货的相关信息。
*
* - 发送email认证信息
*
* 在此例中,我们将仅仅把 order的 status 改变为
* "approved".
*/
order.setStatus("approved");
}
catch (Exception e) {
e.printStackTrace();
throw new EJBException(e);
}
}
/**
* 使该bean 实例与一个特别的context发生联系。
* 我们可以在此 Context 中查询到环境信息。
*/
public void setMessageDrivenContext(MessageDrivenContext ctx) {
this.ctx = ctx;
}
/**
* 在生命周期的初始服务器container将调用此方法。
* 我们将做一些初始化工作。
*/
public void ejbCreate() {
System.err.println("ejbCreate()");
}
/**
* 服务器container调用此方法清除Bean。
*/
public void ejbRemove() {
System.err.println("ejbRemove()");
}
}
5、"订单处理"(OrderProcessorBean.java)消息驱动Bean的配置文件代码
① ejb-jar.xml
<ejb-jar></ejb-jar><enterprise-beans></enterprise-beans>
… …
<message-driven></message-driven>
<ejb-name></ejb-name>OrderProcessor
<ejb-class></ejb-class>examples.OrderProcessorBean
<transaction-type> </transaction-type> Container
<message-driven-destination></message-driven-destination>
<destination-type></destination-type>javax.jms.Topic
… …
… …
② WebLogic-ejb-jar.xml
<weblogic-ejb-jar></weblogic-ejb-jar>… …
<weblogic-enterprise-bean></weblogic-enterprise-bean><ejb-name></ejb-name>OrderProcessor
<message-driven-descriptor></message-driven-descriptor> <pool></pool> <max-beans-in-free-pool></max-beans-in-free-pool>100 <initial-beans-in-free-pool></initial-beans-in-free-pool>10
<destination-jndi-name></destination-jndi-name>jasmine.examples.jms.orderProcess
<jndi-name></jndi-name>OrderProcessorBean
… …
功能描述
顾客在一个电子商务网站如果决定购买某一商品,则进入"展示购物篮商品"页面(ShowQuoteServlet.java),点击"Submit Order"按钮下订单,此项操作将调用
(下订单)
CartBean.java(购物篮对象)的purchase()方法,在该方法中将实例化一个订单对象(Order),产生一个Order ID,然后将Order ID通过sendMessage()方法(亦即MessageSender.java类的同名方法)作为一条"消息"发送给JMS服务器,然后,由"订单处理"(OrderProcessorBean.java)消息驱动Bean进行接受,处理完转帐等事宜后,将该订单的标志字段设为"approved",从而完成一次交易。顾客将看到如下的成功信息:
(购买成功)
代 码
1、"展示购物篮商品"页面(ShowQuoteServlet.java)
… …
/*
*如果顾客点击"Submit Order"按钮
*/
if (request.getParameter("Order") != null) {
/*
* 将购物篮转化为订单,完成付款功能(应用JMS)
*/
String orderId = cart.purchase();
/*
* 将orderID放入 request中以便JSP 能够得到
*/
request.setAttribute("orderID", orderId );
/*
* 清除购物篮,以便顾客能购继续购物
*/
cart.clear();
/*
* 转向成功页
*/
this.getServletContext().getRequestDispatcher("/receipt.jsp").forward(request, response);
return;
}
… …
2、CartBean.java(购物篮对象)的purchase()方法和sendMessage()方法
… …
/**
* 购买购物篮中的商品。
购物篮对象将在数据库里创建一个
* 订单。
*
* @返回 Order ID
*/
public String purchase() {
try {
/*
* 锁定 order home 对象
*/
OrderHome home=getOrderHome();
/*
* 创建order
*/
String orderID = makeUniqueID();
Order order=home.create(orderID, owner,"unverified", subTotal,taxes);
/*
* 创建 orderlineitems(订购商品列表)对象
*/
Vector orderItems=addOrderLineItems(order);
/*
* 将orderlineitems存入Order
*/
order.setLineItems(orderItems);
/*
* 发送JMS消息到topic
*/
sendMessage(orderID);
/*
* 返回 order ID
*/
return orderID;
} catch (Exception e) {
throw new EJBException(e);
}
}
/*
*
*发送JMS消息到topic
*@param JMS message, 在这里是 orderId
*/
private void sendMessage(String message) throws Exception{
try{
MessageSender sender=new MessageSender();
sender.sendMessage(message);
}catch(Exception ex){
throw ex;
}
}
… …
3、MessageSender.java类
package examples;
import java.io.*;
import java.util.*;
import javax.transaction.*;
import javax.naming.*;
import javax.jms.*;
/*
*
* 这个类发送JMS Text message 到topic
*/
public class MessageSender{
/*
* 定义 JNDI context factory。
*/
public final static String JNDI_FACTORY="WebLogic.jndi.WLInitialContextFactory";
/*
* 定义 JMS connection factory JNDI 名。
*/
public final static String JMS_FACTORY="jasmine.examples.jms.TopicConnectionFactory";
/*
* 定义JMS topic JNDI 名。
*/
public final static String TOPIC="jasmine.examples.jms.orderProcess";
/*
* 定义Server URL
*/
public final static String URL="t3://localhost:7001";
/*
* 定义JMS connection factory
*/
protected TopicConnectionFactory tconFactory;
/*
* 定义JMS topic connection
*/
protected TopicConnection tcon;
/*
* 定义 JMS topic session
*/
protected TopicSession tsession;
/*
* 定义 JMS topic publisher
*/
protected TopicPublisher tpublisher;
/*
* 定义 JMS topic
*/
protected Topic topic;
/*
* 定义 JMS TextMessage
*/
protected TextMessage msg;
/*
*
* 为发送messages 到一个JMS Topic
* 创建所有必要的对象。
*
* @param ctx JNDI initial context
* @param topicName name of topic
* @exception NamingExcpetion if problem occurred with the JNDI context interface
* @exception JMSException if JMS fails to initialize due to internal error
*
*/
public void init(Context ctx, String topicName)
throws NamingException, JMSException{
/*
* 锁定 Topic connection factory JNDI
*/
tconFactory = (TopicConnectionFactory) ctx.lookup(JMS_FACTORY);
/*
* 创建一个 topic connection factory
*/
tcon = tconFactory.createTopicConnection();
/*
* 创建一个 topic session
*/
tsession = tcon.createTopicSession(false, Session.AUTO_ACKNOWLEDGE);
/**
* 锁定Topic JNDI
*/
topic = (Topic) ctx.lookup(topicName);
/**
* 创建一个 publisher
*/
tpublisher = tsession.createPublisher(topic);
/**
* 创建Textmessage
*/
msg = tsession.createTextMessage();
tcon.start();
}
/**
* 创建所有必要的JMS 对象同时发送一个message 到一个JMS topic.
* @params message message to be sent
* @exception JMSException if JMS fails to send message due to internal error
*
*/
public void sendMessage(String message) throws JMSException {
try{
InitialContext ctx= getInitialContext(URL);
init(ctx,TOPIC);
send(message);
}catch(Exception ex){
throw new JMSException( ex.getMessage());
}finally{
close();
}
}
/**
* 发送一个message 到一个JMS topic。
*
* @params message message to be sent
*/
public void send(String value)
throws JMSException {
msg.setText(value);
tpublisher.publish(msg);
}
/**
* 关闭 JMS 对象。
*
* @exception JMSException if JMS fails to close objects due to internal error
*/
public void close()
throws JMSException {
tpublisher.close();
tsession.close();
tcon.close();
}
/**
* 返回应用服务器初始化环境上下文信息。
*/
protected static InitialContext getInitialContext(String url)
throws NamingException {
Hashtable env = new Hashtable();
env.put(Context.INITIAL_CONTEXT_FACTORY, JNDI_FACTORY);
env.put(Context.PROVIDER_URL, url);
env.put("WebLogic.jndi.createIntermediateContexts", "true");
return new InitialContext(env);
}
/**
* main() 方法。用于测试该类。
*
* @param args WebLogic Server URL
* @exception Exception if operation fails
*/
public static void main(String[] args)
throws Exception{
if (args.length != 1) {
System.out.println("Usage: java examples.jms.topic.TopicSend WebLogicURL");
return;
}
InitialContext ic = getInitialContext(args[0]);
MessageSender sender = new MessageSender();
sender.init(ic, TOPIC);
sender.send("123456");
sender.close();
}
}
4、"订单处理"(OrderProcessorBean.java)消息驱动Bean
package examples;import javax.ejb.*;
import javax.jms.*;
import javax.naming.*;
import javax.rmi.PortableRemoteObject;
/**
* 此消息驱动(message-driven) bean接受JMS messages
* 以便实现购买过程。届时将执行order processing。
*/
public class OrderProcessorBean implements MessageDrivenBean, MessageListener {
protected MessageDrivenContext ctx;
/**
* 这是消息驱动(message-driven)beans 拥有的一个商业方法。
* 在此我们执行真正的order processing
*/
public void onMessage(Message msg) {
TextMessage tm = (TextMessage) msg;
try {
String orderID = tm.getText();
Context ctx = new InitialContext();
OrderHome home = (OrderHome)
PortableRemoteObject.narrow(
ctx.lookup("OrderHome"), OrderHome.class);
Order order = home.findByPrimaryKey(orderID);
/*
* 在此我们可以执行其他的任务:
*
* - 检查用户的信用卡credit并进行划帐操作。
*
* - 检查库存确保商品可卖。
*
* - 检查送货的相关信息。
*
* - 发送email认证信息
*
* 在此例中,我们将仅仅把 order的 status 改变为
* "approved".
*/
order.setStatus("approved");
}
catch (Exception e) {
e.printStackTrace();
throw new EJBException(e);
}
}
/**
* 使该bean 实例与一个特别的context发生联系。
* 我们可以在此 Context 中查询到环境信息。
*/
public void setMessageDrivenContext(MessageDrivenContext ctx) {
this.ctx = ctx;
}
/**
* 在生命周期的初始服务器container将调用此方法。
* 我们将做一些初始化工作。
*/
public void ejbCreate() {
System.err.println("ejbCreate()");
}
/**
* 服务器container调用此方法清除Bean。
*/
public void ejbRemove() {
System.err.println("ejbRemove()");
}
}
5、"订单处理"(OrderProcessorBean.java)消息驱动Bean的配置文件代码
① ejb-jar.xml
<ejb-jar></ejb-jar><enterprise-beans></enterprise-beans>
… …
<message-driven></message-driven>
<ejb-name></ejb-name>OrderProcessor
<ejb-class></ejb-class>examples.OrderProcessorBean
<transaction-type> </transaction-type> Container
<message-driven-destination></message-driven-destination>
<destination-type></destination-type>javax.jms.Topic
… …
… …
② WebLogic-ejb-jar.xml
<weblogic-ejb-jar></weblogic-ejb-jar>… …
<weblogic-enterprise-bean></weblogic-enterprise-bean><ejb-name></ejb-name>OrderProcessor
<message-driven-descriptor></message-driven-descriptor> <pool></pool> <max-beans-in-free-pool></max-beans-in-free-pool>100 <initial-beans-in-free-pool></initial-beans-in-free-pool>10
<destination-jndi-name></destination-jndi-name>jasmine.examples.jms.orderProcess
<jndi-name></jndi-name>OrderProcessorBean
… …
发表评论
-
Android Launcher一些资源
2012-01-10 16:03 1593棒槌网@Android相关文章推荐: rjJ-ZRs\ An ... -
卡刷rom固件update.zip的制作教程
2011-12-29 19:44 19270对于第三方ROM来讲,通常都包括两部分,一个recover ... -
APK反编译利器Apktool下载及用法介绍
2011-12-29 19:40 6515近期在研究rom过程中发现一个非常不错的软件,可以帮助我们把A ... -
Android版本检测\自动更新
2011-11-30 10:39 2760package com.hiyo.game.pdk.tool; ... -
高仿UC半透明MENU菜单(有图有真相)
2011-11-13 15:55 1957转载自:http://www.eoeandroid.com/ ... -
Android启动界面实现
2011-11-13 15:39 6794转载自:http://www.eoeandroid.com/t ... -
获取本机外网IP地址(External IP Address)
2010-12-15 22:45 6802import java.io.IOException; ... -
Red5+OpenOffice+OpenMeetings架设视频会议网络
2009-07-01 09:57 2248因工作需要,这两天弄了一个视频会议服务器。采用了flash流媒 ... -
J2EE or J2SE? JNDI works with both
2009-05-11 16:21 1522J2EE or J2SE? JNDI works with b ... -
脚本启动Java应用程序(Windows/Linux)
2009-05-08 16:40 36941、新建文件夹myapp,放你的应用; 2、将你的程序 ... -
破解Java程序
2007-12-13 17:36 1898第一步是定位,这也是 ... -
WebSphere 应用服务器环境搭建实践指南
2007-08-22 18:20 5226Dan Wu (wdan@cn.ibm.com), 高级信息工 ... -
beanutils研究心得
2007-01-23 15:47 2159Beanutils用了魔术般的反射技术,实现了很多夸张有用的功 ... -
apache-common功能列表
2007-01-23 15:16 4992... -
Apache Commons工具集简介[转载]
2007-01-21 02:20 5607js 代码 <script ... -
利用servlet生成简单的验证码
2007-01-21 01:47 1617在web.xml配置: 代码 < ... -
实战篇:设计自己的Annotation
2007-01-21 01:44 1395From:http://lighter.iteye.com 第 ... -
JSTL 入门: 表达式语言
2007-01-15 11:23 1413JSP 标准标记库(JSP Stand ... -
extremeTable介绍
2007-01-10 11:14 46091、何为 extremeTable,又一个开源taglib e ... -
ExtremeTable使用指南:Limit指南
2007-01-10 11:08 36341. 引言 在你需要处理大量数据时你应该考虑使用eXtreme ...
相关推荐
【JBOSST建立JMS应用实例】 JBOSST(Java Business Open Source Solutions)是一个开源的企业级应用服务器,它提供了全面的中间件服务,包括对Java消息服务(JMS)的支持。JMS是一种标准,用于在分布式环境中传递...
通过这八个实例的学习,你将能够全面掌握JMS的核心特性和使用方式,理解其在实际项目中的应用,提升你在企业级应用开发中的消息处理能力。同时,结合Spring框架的使用,能让你更好地在实际工作中利用JMS实现高效、...
总结来说,"activeMQ-JMS实例"是一个基于Spring MVC的示例,它演示了如何使用Spring的JMS支持与ActiveMQ结合,实现消息的发送和接收。这个实例对于学习和理解JMS以及如何在实际项目中应用它是很有帮助的。通过这个...
一个jms activemq Topic 消息实例 关于jms JMS 是接口,相当于jdbc ,要真正使用它需要某些厂商进行实现 ,即jms provider 常见的jms provider 有 ActiveMQ JBoss 社区所研发的 HornetQ (在jboss6 中默认即可以...
例如,一个繁忙的Web应用可以使用JMS队列来缓存用户的请求,然后在后台处理这些请求,从而提高系统的响应速度和可扩展性。 总的来说,JMS与WebLogic的结合提供了强大的消息传递能力,使得开发者能够构建健壮、灵活...
在JMS应用中,必须妥善处理各种可能的异常,例如`JMSException`,并考虑重新发送消息或回滚事务的情况。 总结,一个简单的JMS客户端应用涉及到连接管理、会话创建、消息生产和消费等多个环节,利用JMS提供的API...
而Spring框架是Java开发中广泛使用的轻量级框架,它提供了一个全面的编程和配置模型,使得开发企业级应用变得更加简单。整合JMS与Spring可以帮助我们构建更高效、可扩展的消息驱动系统。 在Spring框架中,我们可以...
标题 "一个Topic和subscriber的JMS应用" 描述了一个基于Java消息服务(JMS)的系统,该系统涉及发布/订阅模式,其中Topic是发布者发送消息的地方,而subscriber是接收这些消息的实体。JMS是一种标准接口,允许应用...
下面我们将深入探讨如何在JBoss中构建JMS应用,并通过实例来了解其工作原理。 1. **JMS基础** - **消息模型**:JMS提供了两种主要的消息模型——点对点(Point-to-Point,P2P)和发布/订阅(Publish/Subscribe,...
JMS 客户端可以使用 JDBC 接口,可以将 JDBC 和 JMS 包含在一个事务里。这种包含可以在 EJB 里,也可以直接调用 JTA(Java Transaction API)接口实现。JavaBeans 可以用 JMS Session 发送或接收消息。EJB2.0 规范中...
Apache ActiveMQ 是一个流行的开源消息中间件,它实现了Java消息服务(JMS)规范,允许应用程序之间进行异步通信。在本文中,我们将探讨如何在Tomcat服务器上设置和使用ActiveMQ的简单实例。 **一、ActiveMQ的特点...
总结起来,`javax.jms.jar` 包提供了Java开发人员与JMS兼容的消息中间件进行通信的工具,而`demo` 文件中的实例代码展示了如何在实际应用中使用这些工具。通过学习和实践这些示例,你可以更好地理解和掌握Java消息...
前面多次提到 JMS 提供者,因为 JMS 给我们提供的只是一系列接口,当我们使用一个 JMS 的时候,还是需要一个第三方的提供者,它的作用就是真正管理这些 Connection、Session、Topic 和 Queue 等。 JMS 入门的知识点...
WebLogic Server 是Oracle公司的一个Java EE应用服务器,它遵循JMS规范并提供了强大的消息服务功能。WebLogic JMS Server 的主要组件包括: 1. **WebLogic JMS servers**:这些服务器处理消息的发送和接收。 2. **...
综上所述,这个实例是一个典型的富互联网应用(RIA)开发案例,展示了Flex、BlazeDS、Java和JMS在实时通信中的应用,对于理解和掌握相关技术具有很高的实践价值。通过学习和实践这个实例,开发者可以更好地理解如何...
这通常涉及修改Tomcat的server.xml文件,添加一个Context元素来指向ActiveMQ的web应用目录。 在"ActiveMq-JMS简单实例使用tomcat.doc"中,可能详细介绍了如何配置Tomcat和ActiveMQ,包括启动和停止ActiveMQ服务的...
总结,"java-jms小例子"是一个基础教程,帮助开发者理解如何在Java应用程序中使用JMS进行异步通信。通过创建消息生产者和消费者,设置消息队列或主题,以及发送和接收不同类型的JMS消息,开发者能够掌握JMS的核心...
1. **消息生产者**: 在JMS中,一个应用程序可以作为一个消息生产者,通过调用`createMessage()`方法创建消息对象,然后使用`send()`方法将消息发送到消息代理。消息可以是文本、二进制或其他复杂的数据结构,封装在`...
每个消息仅被一个消费者接收,确保消息的顺序传递和至少一次传递(可能因重复消费而超过一次)。 5. **主题(Topic)**:主题支持发布/订阅模式,一个消息可以被多个订阅者同时接收,实现广播式通信。 6. **案例...
本实例中,"JMS实例,整合spring,含jar"表明这是一个具体的项目示例,展示了如何在Spring框架中配置和使用JMS。这通常涉及到以下步骤: 1. **添加依赖**:首先,你需要在项目的构建文件(如Maven的pom.xml或Gradle的...