- 浏览: 378168 次
- 性别:
- 来自: 合肥
-
文章分类
- 全部博客 (314)
- java (132)
- 生活 (13)
- javase模式 (6)
- weblogic (4)
- jquery (5)
- sql (21)
- ecside (1)
- el (3)
- css (5)
- spring (7)
- ireport (2)
- linux (14)
- struts2 (2)
- jstl (1)
- rmi (1)
- rose (9)
- js (6)
- swing (4)
- webservice (1)
- jboss (1)
- ejb3 (2)
- xml (1)
- 线程 (9)
- socket (3)
- jms (2)
- tomcat (10)
- 领域驱动 (3)
- json (3)
- 权限 (2)
- jvm (1)
- 书籍 (1)
- eclipse RCP (0)
- 数据库设计 (10)
- 软件分析建模 (5)
- 分析建模 (3)
- hibernate jpa (5)
- Java 获取系统信息,包括CPU使用率、硬盘大小、网卡状态、系统信息等 (1)
- 项目管理 (2)
- 财务 (0)
- oracle (2)
- 需求 (2)
- rcp gef (0)
- c++ (1)
- hadoop (2)
- BIGDATA (3)
- c (6)
最新评论
-
lh_kevin:
...
jpa 注解 -
一别梦心:
你好,我也遇到此问题了。就你贴的那段代码,你说了两种解决方式, ...
Hibernate的Antlr在Weblogic中产生Jar冲突的历史缘故以及解决办法 -
fireinjava:
...
el表达式 -
宋建勇:
...
JSON: property "xxx" has no getter method in class "..." -
handawei:
有道理,jpa是orm框架的java标准,它关注的是对象到关系 ...
jpa 注解
在消息的5个类型中,BytesMessage是移植性最好的。
BytesMessage.writeUTF()
package ch08; import java.util.Scanner; import javax.jms.BytesMessage; import javax.jms.JMSException; import javax.jms.Queue; import javax.jms.QueueConnection; import javax.jms.QueueConnectionFactory; import javax.jms.QueueSession; import javax.jms.Session; import javax.naming.InitialContext; import javax.naming.NamingException; /** * Test the BytesMessage * @version 2010-10-26 下午02:15:42 * @author DaWei han * @EMAIL handawei_1@126.com */ public class QueueSender { public QueueSender() { try { InitialContext context = new InitialContext(); factory = (QueueConnectionFactory) context .lookup("ConnectionFactory"); con = factory.createQueueConnection(); session = con.createQueueSession(false, Session.AUTO_ACKNOWLEDGE); requestQueue = (Queue) context.lookup("jms/RequestQueue"); con.start(); } catch (NamingException e) { e.printStackTrace(); } catch (JMSException e) { e.printStackTrace(); } } public void senMessage(String message) { try { BytesMessage msg = session.createBytesMessage(); msg.writeUTF("the message is 消息内容!"); javax.jms.QueueSender sender = session.createSender(requestQueue); sender.send(msg); } catch (JMSException e) { e.printStackTrace(); } } public void close() { try { con.close(); } catch (JMSException e) { e.printStackTrace(); } System.exit(0); } /** * @param args */ public static void main(String[] args) { QueueSender sender = new QueueSender(); System.out.println("Please enter the message to send eg:50,2"); Scanner in = new Scanner(System.in); while (in.hasNextLine()) { String line = in.nextLine(); if ("".equals(line) || "exit".equals(line)) { sender.close(); } sender.senMessage(line); } } private Queue requestQueue; private QueueConnection con; private QueueConnectionFactory factory; private QueueSession session; }
BytesMessage.readUTF();
package ch08; import java.util.Scanner; import javax.jms.BytesMessage; import javax.jms.JMSException; import javax.jms.Message; import javax.jms.MessageListener; import javax.jms.Queue; import javax.jms.QueueConnection; import javax.jms.QueueConnectionFactory; import javax.jms.QueueReceiver; import javax.jms.QueueSession; import javax.jms.Session; import javax.naming.InitialContext; import javax.naming.NamingException; /** * @version 2010-10-26 下午02:16:15 * @author DaWei han * @EMAIL handawei_1@126.com */ public class QueueReceiverTest implements MessageListener{ public QueueReceiverTest() { try { InitialContext context = new InitialContext(); QueueConnectionFactory factory = (QueueConnectionFactory) context .lookup("ConnectionFactory"); con = factory.createQueueConnection(); session = con.createQueueSession(false, Session.AUTO_ACKNOWLEDGE); requestQueue=(Queue) context.lookup("jms/RequestQueue"); con.start(); receiver = session.createReceiver(requestQueue); receiver.setMessageListener(this); System.out.println("QueueReceiverTest waiting the message......."); } catch (NamingException e) { e.printStackTrace(); } catch (JMSException e) { e.printStackTrace(); } } /** * @param args */ public static void main(String[] args) { QueueReceiverTest reciver = new QueueReceiverTest(); System.out.println("press the Enter to Exit."); Scanner in = new Scanner(System.in); in.nextLine(); System.exit(1); } public void onMessage(Message arg0) { try { System.out.println("in to the on message method!"); BytesMessage msg = (BytesMessage) arg0; System.out.println("the message is :" + msg.readUTF()); } catch (JMSException e) { e.printStackTrace(); } } private QueueReceiver receiver; private QueueConnection con; private Queue requestQueue; private QueueSession session; }
可以正常工作。
writeBytes
package ch08; import java.util.Scanner; import javax.jms.BytesMessage; import javax.jms.JMSException; import javax.jms.Queue; import javax.jms.QueueConnection; import javax.jms.QueueConnectionFactory; import javax.jms.QueueSession; import javax.jms.Session; import javax.naming.InitialContext; import javax.naming.NamingException; /** * Test the BytesMessage * @version 2010-10-26 下午02:15:42 * @author DaWei han * @EMAIL handawei_1@126.com */ public class QueueSender01 { public QueueSender01() { try { InitialContext context = new InitialContext(); factory = (QueueConnectionFactory) context .lookup("ConnectionFactory"); con = factory.createQueueConnection(); session = con.createQueueSession(false, Session.AUTO_ACKNOWLEDGE); requestQueue = (Queue) context.lookup("jms/RequestQueue"); con.start(); } catch (NamingException e) { e.printStackTrace(); } catch (JMSException e) { e.printStackTrace(); } } public void senMessage(String message) { try { BytesMessage msg = session.createBytesMessage(); byte[] bys="消息内容".getBytes(); msg.writeBytes(bys); System.out.println(bys.length); javax.jms.QueueSender sender = session.createSender(requestQueue); sender.send(msg); } catch (JMSException e) { e.printStackTrace(); } } public void close() { try { con.close(); } catch (JMSException e) { e.printStackTrace(); } System.exit(0); } /** * @param args */ public static void main(String[] args) { QueueSender01 sender = new QueueSender01(); System.out.println("Please enter the message to send eg:50,2"); Scanner in = new Scanner(System.in); while (in.hasNextLine()) { String line = in.nextLine(); if ("".equals(line) || "exit".equals(line)) { sender.close(); } sender.senMessage(line); } } private Queue requestQueue; private QueueConnection con; private QueueConnectionFactory factory; private QueueSession session; }
BytesMessage.read(byte[])
package ch08; import java.util.Scanner; import javax.jms.BytesMessage; import javax.jms.JMSException; import javax.jms.Message; import javax.jms.MessageListener; import javax.jms.Queue; import javax.jms.QueueConnection; import javax.jms.QueueConnectionFactory; import javax.jms.QueueReceiver; import javax.jms.QueueSession; import javax.jms.Session; import javax.naming.InitialContext; import javax.naming.NamingException; /** * @version 2010-10-26 下午02:16:15 * @author DaWei han * @EMAIL handawei_1@126.com */ public class QueueReceiverTest01 implements MessageListener{ public QueueReceiverTest01() { try { InitialContext context = new InitialContext(); QueueConnectionFactory factory = (QueueConnectionFactory) context .lookup("ConnectionFactory"); con = factory.createQueueConnection(); session = con.createQueueSession(false, Session.AUTO_ACKNOWLEDGE); requestQueue=(Queue) context.lookup("jms/RequestQueue"); con.start(); receiver = session.createReceiver(requestQueue); receiver.setMessageListener(this); System.out.println("QueueReceiverTest01 waiting the message......."); } catch (NamingException e) { e.printStackTrace(); } catch (JMSException e) { e.printStackTrace(); } } /** * @param args */ public static void main(String[] args) { QueueReceiverTest01 reciver = new QueueReceiverTest01(); System.out.println("press the Enter to Exit."); Scanner in = new Scanner(System.in); in.nextLine(); System.exit(1); } public void onMessage(Message arg0) { try { System.out.println("in to the on message method!"); BytesMessage msg = (BytesMessage) arg0; byte[] bys=new byte[(int)msg.getBodyLength()]; System.out.println("1"); msg.readBytes(bys); System.out.println("2"); System.out.println("=====>"+bys.length); String msgstr=new String(bys); System.out.println(msgstr); } catch (JMSException e) { e.printStackTrace(); } } private QueueReceiver receiver; private QueueConnection con; private Queue requestQueue; private QueueSession session; }
BytesMessage.writeUTF
package ch08; import java.util.Scanner; import javax.jms.BytesMessage; import javax.jms.JMSException; import javax.jms.Queue; import javax.jms.QueueConnection; import javax.jms.QueueConnectionFactory; import javax.jms.QueueSession; import javax.jms.Session; import javax.naming.InitialContext; import javax.naming.NamingException; /** * Test the BytesMessage * @version 2010-10-26 下午02:15:42 * @author DaWei han * @EMAIL handawei_1@126.com */ public class QueueSender02 { public QueueSender02() { try { InitialContext context = new InitialContext(); factory = (QueueConnectionFactory) context .lookup("ConnectionFactory"); con = factory.createQueueConnection(); session = con.createQueueSession(false, Session.AUTO_ACKNOWLEDGE); requestQueue = (Queue) context.lookup("jms/RequestQueue"); con.start(); } catch (NamingException e) { e.printStackTrace(); } catch (JMSException e) { e.printStackTrace(); } } public void senMessage(String message) { try { BytesMessage msg = session.createBytesMessage(); msg.writeUTF("消息内容"); javax.jms.QueueSender sender = session.createSender(requestQueue); sender.send(msg); } catch (JMSException e) { e.printStackTrace(); } } public void close() { try { con.close(); } catch (JMSException e) { e.printStackTrace(); } System.exit(0); } /** * @param args */ public static void main(String[] args) { QueueSender02 sender = new QueueSender02(); System.out.println("Please enter the message to send eg:50,2"); Scanner in = new Scanner(System.in); while (in.hasNextLine()) { String line = in.nextLine(); if ("".equals(line) || "exit".equals(line)) { sender.close(); } sender.senMessage(line); } } private Queue requestQueue; private QueueConnection con; private QueueConnectionFactory factory; private QueueSession session; }
BytesMessage.read(byte[])
package ch08; import java.io.UnsupportedEncodingException; import java.util.Scanner; import javax.jms.BytesMessage; import javax.jms.JMSException; import javax.jms.Message; import javax.jms.MessageListener; import javax.jms.Queue; import javax.jms.QueueConnection; import javax.jms.QueueConnectionFactory; import javax.jms.QueueReceiver; import javax.jms.QueueSession; import javax.jms.Session; import javax.naming.InitialContext; import javax.naming.NamingException; /** * @version 2010-10-26 下午02:16:15 * @author DaWei han * @EMAIL handawei_1@126.com */ public class QueueReceiverTest02 implements MessageListener{ public QueueReceiverTest02() { try { InitialContext context = new InitialContext(); QueueConnectionFactory factory = (QueueConnectionFactory) context .lookup("ConnectionFactory"); con = factory.createQueueConnection(); session = con.createQueueSession(false, Session.AUTO_ACKNOWLEDGE); requestQueue=(Queue) context.lookup("jms/RequestQueue"); con.start(); receiver = session.createReceiver(requestQueue); receiver.setMessageListener(this); System.out.println("QueueReceiverTest02 waiting the message......."); } catch (NamingException e) { e.printStackTrace(); } catch (JMSException e) { e.printStackTrace(); } } /** * @param args */ public static void main(String[] args) { QueueReceiverTest02 reciver = new QueueReceiverTest02(); System.out.println("press the Enter to Exit."); Scanner in = new Scanner(System.in); in.nextLine(); System.exit(1); } public void onMessage(Message arg0) { try { System.out.println("in to the on message method!"); BytesMessage msg = (BytesMessage) arg0; byte[] bys=new byte[(int)msg.getBodyLength()]; System.out.println("1"); msg.readBytes(bys); System.out.println("2"); System.out.println("=====>"+bys.length); String msgstr = null; try { msgstr = new String(bys,"utf-8"); } catch (UnsupportedEncodingException e) { // TODO Auto-generated catch block e.printStackTrace(); } System.out.println(msgstr); } catch (JMSException e) { e.printStackTrace(); } } private QueueReceiver receiver; private QueueConnection con; private Queue requestQueue; private QueueSession session; }
前面的2种 (写入 writeUTF,readUTF),(write(byte[]),readBytes[byte[]]) 都可以正常工作。最后一种交叉(写入 writeUTF,readBytes(byte[]))时 在读取的时候前面总是有个符号去不掉,也复制不了,很逗。
相关推荐
javax.jms.BytesMessage.class javax.jms.Message.class javax.jms.JMSException.class javax.jms.Destination.class javax.jms.DeliveryMode.class javax.jms.Connection.class javax.jms.Session.class javax.jms....
javax.jms-1.1.jar 一个jar包
根据有效负载的类型来划分,可以将消息分为几种类型,它们分别携带:简单文本 (TextMessage)、可序列化的对象 (ObjectMessage)、属性集合 (MapMessage)、字节流 (BytesMessage)、原始值流 (StreamMessage),还有无...
javax.jms.BytesMessage.class javax.jms.Connection.class javax.jms.ConnectionConsumer.class javax.jms.ConnectionFactory.class javax.jms.ConnectionMetaData.class javax.jms.DeliveryMode.class javax.jms....
* BytesMessage:是指字节消息体。 * MapMessage:是指Map消息体。 * StreamMessage:是指流消息体。 1.5.3 消息的确认 * Auto-Acknowledge:是指自动确认消息。 * Client-Acknowledge:是指客户端确认消息。 1.6...
#include <cms/BytesMessage.h> #include #include #include //} #include #include #include #include using namespace activemq::core; using namespace decaf::util::concurrent; using namespace ...
重点在于用BytesMessage传给activeMQ,发送端用CommandBuff.Command.newBuilder()封装,接收端用CommandBuff.Command.parseFrom解析。
JMS定义了五种不同的消息正文格式,以及调用的消息类型,允许你发送并接收以一些不同形式的数据,提供现有消息格式的一些级别的兼容性。 • StreamMessage -- Java原始值的...• BytesMessage--一个未解释字节的数据流