📄 simpleproducer.java
字号:
/* * Copyright (c) 2003 Sun Microsystems, Inc. All rights reserved. U.S. * Government Rights - Commercial software. Government users are subject * to the Sun Microsystems, Inc. standard license agreement and * applicable provisions of the FAR and its supplements. Use is subject * to license terms. * * This distribution may include materials developed by third parties. * Sun, Sun Microsystems, the Sun logo, Java and J2EE are trademarks * or registered trademarks of Sun Microsystems, Inc. in the U.S. and * other countries. * * Copyright (c) 2003 Sun Microsystems, Inc. Tous droits reserves. * * Droits du gouvernement americain, utilisateurs gouvernementaux - logiciel * commercial. Les utilisateurs gouvernementaux sont soumis au contrat de * licence standard de Sun Microsystems, Inc., ainsi qu'aux dispositions * en vigueur de la FAR (Federal Acquisition Regulations) et des * supplements a celles-ci. Distribue par des licences qui en * restreignent l'utilisation. * * Cette distribution peut comprendre des composants developpes par des * tierces parties. Sun, Sun Microsystems, le logo Sun, Java et J2EE * sont des marques de fabrique ou des marques deposees de Sun * Microsystems, Inc. aux Etats-Unis et dans d'autres pays. *//** * The SimpleProducer class consists only of a main method, * which sends several messages to a queue or topic. * * Run this program in conjunction with SimpleSynchConsumer or * SimpleAsynchConsumer. Specify a queue or topic name on the * command line when you run the program. By default, the * program sends one message. Specify a number after the * destination name to send that number of messages. */import javax.jms.*;import javax.naming.*;public class SimpleProducer { /** * Main method. * * @param args the destination used by the example, * its type, and, optionally, the number of * messages to send */ public static void main(String[] args) { String destName = null; String destType = null; Context jndiContext = null; ConnectionFactory connectionFactory = null; Connection connection = null; Session session = null; Destination dest = null; MessageProducer producer = null; TextMessage message = null; final int NUM_MSGS; if ( (args.length < 2) || (args.length > 3) ) { System.out.println("Program takes two or three arguments: " + "<dest_name> <queue|topic> " + "[<number-of-messages>"); System.exit(1); } destName = new String(args[0]); destType = new String(args[1]); System.out.println("Destination name is " + destName + ", type is " + destType); if (args.length == 3){ NUM_MSGS = (new Integer(args[2])).intValue(); } else { NUM_MSGS = 1; } /* * Create a JNDI API InitialContext object if none exists * yet. */ try { jndiContext = new InitialContext(); } catch (NamingException e) { System.out.println("Could not create JNDI API " + "context: " + e.toString()); System.exit(1); } /* * Look up connection factory and destination. If either * does not exist, exit. If you look up a * TopicConnectionFactory instead of a * QueueConnectionFactory, program behavior is the same. */ try { connectionFactory = (ConnectionFactory) jndiContext.lookup("jms/QueueConnectionFactory"); if (destType.equals("queue")) { dest = (Queue) jndiContext.lookup(destName); } else if (destType.equals("topic")) { dest = (Topic) jndiContext.lookup(destName); } else { throw new Exception("Invalid destination type" + "; must be queue or topic"); } } catch (Exception e) { System.out.println("JNDI API lookup failed: " + e.toString()); e.printStackTrace(); System.exit(1); } /* * Create connection. * Create session from connection; false means session is * not transacted. * Create producer and text message. * Send messages, varying text slightly. * Send end-of-messages message. * Finally, close connection. */ try { connection = connectionFactory.createConnection(); session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); producer = session.createProducer(dest); message = session.createTextMessage(); for (int i = 0; i < NUM_MSGS; i++) { message.setText("This is message " + (i + 1)); System.out.println("Sending message: " + message.getText()); producer.send(message); } /* * Send a non-text control message indicating end of * messages. */ producer.send(session.createMessage()); } catch (JMSException e) { System.out.println("Exception occurred: " + e.toString()); } finally { if (connection != null) { try { connection.close(); } catch (JMSException e) {} } } }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -