📄 queuesend.java
字号:
package com.hotct.jms;
import java.io.*;
import java.util.*;
import javax.transaction.*;
import javax.naming.*;
import javax.jms.Queue;
import javax.jms.*;
import javax.rmi.PortableRemoteObject;
import javax.naming.InitialContext;
import java.util.Hashtable;
public class QueueSend {
public final static String QUEUE = "queue/testQueue";
public static void main(String[] args) throws Exception{
//创建用于JNDI查询的Context
Context ctx = getInitialContext();
/**
* 获取QueueConnectionFactory
* ConnectionFactory为JBoss中已有的JNDI名字
*/
QueueConnectionFactory qconFactory =
(QueueConnectionFactory)ctx.lookup("/ConnectionFactory");
/**
* 获取Queue
* queue/testQueue为JBoss中已有的JNDI名字
*/
Queue queue =(Queue)ctx.lookup("/queue/testQueue");
//从QueueConnectionFactory中创建QueueConnection
QueueConnection qcon = qconFactory.createQueueConnection();
/**
* 从QueueConnection中 创建QueueSession
* 第一个参数为 是否为Transacted,如果是接受后的消息会自动确认,这时忽略第二个参数,本例中虽然为false,
* 但是第二个参数还是指点了自动确认的方式
*/
QueueSession qsession = qcon.createQueueSession(false,Session.AUTO_ACKNOWLEDGE);
//从QueueSession中创建QueueSender
QueueSender qsender = qsession.createSender(queue);
/**
* 从QueueSession中创建Message
* createTextMessage创建文本类型的消息
*/
TextMessage msg = qsession.createTextMessage();
for(int i = 0;i < 3 ; i++){
//把消息写入到Message
msg.setText("Message " + i + "from Queue");
System.out.println("Sending message :" + msg.getText());
//发送消息
qsender.send(msg);
}
//关闭消息
qsender.send(qsession.createMessage());
qsender.close();
qsession.close();
qcon.close();
}
private static Context getInitialContext() throws NamingException{
Hashtable props = new Hashtable();
props.put(Context.INITIAL_CONTEXT_FACTORY, "org.jnp.interfaces.NamingContextFactory");
props.put(Context.URL_PKG_PREFIXES, "org.jboss.naming:org.jnp.interfaces");
props.put(Context.PROVIDER_URL, "jnp://localhost:1099");
Context ctx = new InitialContext(props);
return ctx;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -