⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 queuesend.java

📁 weblogic应用全实例
💻 JAVA
字号:
//声明这个类定义在包examples.jms.queue中
package examples.jms.queue;
//声明这个类引入的其它类和包
import java.io.*;
import java.util.*;
import javax.transaction.*;
import javax.naming.*;
import javax.jms.*;

/** 这个实例演示怎样建立一个连接并发送消息到一个JMS队列。
 * 这个目录中的例子操作同一个JMS队列。一起运行这些类观察消息发送和接收。
 * 浏览队列中的消息。这个例子用来发送消息到一个消息队列。
 */
public class QueueSend
{
/**
 * 定义JNDI上下文构造器
 */
  public final static String JNDI_FACTORY="weblogic.jndi.WLInitialContextFactory";
/**
 * 定义JMS上下文构造器
 */
  public final static String JMS_FACTORY="weblogic.examples.jms.QueueConnectionFactory";
/** 
 * 定义消息队列
 */
  public final static String QUEUE="weblogic.examples.jms.exampleQueue";
  //声明队列连接构造器
  private QueueConnectionFactory qconFactory;
  //声明队列连接
  private QueueConnection qcon;
  //声明队列会话
  private QueueSession qsession;
  //声明队列发送
  private QueueSender qsender;
  //声明队列
  private Queue queue;
  //声明文本消息
  private TextMessage msg;

  /**
   * 创建所有发送队列消息所需的对象
   *
   * @参数 ctx JNDI上下文
   * @参数 queueName 队列名
   * @异常 NamingException if operation cannot be performed
   * @异常 JMSException if JMS fails to initialize due to internal error
   */
  public void init(Context ctx, String queueName)
       throws NamingException, JMSException
  {
  //查找连接构造器
    qconFactory = (QueueConnectionFactory) ctx.lookup(JMS_FACTORY);
    System.out.println("here");
    //创建队列连接
    qcon = qconFactory.createQueueConnection();
    //创建队列会话
    qsession = qcon.createQueueSession(false, Session.AUTO_ACKNOWLEDGE);
    //查找消息队列
    queue = (Queue) ctx.lookup(queueName);
    //创建消息发送
    qsender = qsession.createSender(queue);
    //创建文本消息
    msg = qsession.createTextMessage();
    //启动连接
    qcon.start();
  }

  /**
   * 发送JMS队列消息
   *
   * @参数s message  发送的消息
   * @异常 JMSException 由于内部错误,JMS 发送消息失败抛出的异常
   */
  public void send(String message)
       throws JMSException
  {
    //设置文本
    msg.setText(message);
    //发送消息
    qsender.send(msg);
  }

  /**
   * 关闭JMS对象
   * @异常 JMSException 由于内部错误,JMS 发送消息失败抛出的异常
   */
  public void close()
       throws JMSException
  {
    qsender.close();
    qsession.close();
    qcon.close();
  }
 /** main() 方法
  *
  * @参数 args WebLogic服务器URL
  * @异常 Exception 操作失败
  */
  public static void main(String[] args)
       throws Exception 
  {
    if (args.length != 1) {
      System.out.println("用法: java examples.jms.queue.QueueSend WebLogicURL");
      return;
    }
    //初始化上下文
    InitialContext ic = getInitialContext(args[0]);
    //实例本类
    QueueSend qs = new QueueSend();
    //调用初始化方法
    qs.init(ic, QUEUE);
    //读入文本并发送文本消息
    readAndSend(qs);
    //关闭
    qs.close();
  }
  //读取文本并发送消息
  private static void readAndSend(QueueSend qs) 
       throws IOException, JMSException
  {
    //从命令窗口读取文本
    BufferedReader msgStream = new BufferedReader(new InputStreamReader(System.in));
    String line=null;
    boolean quitNow = false;
    do {
      System.out.print("Enter message (\"quit\" to quit): ");
      //读入文本
      line = msgStream.readLine();
      if (line != null && line.trim().length() != 0) {
      	//发送
        qs.send(line);
        System.out.println("JMS Message Sent: "+line+"\n");
        quitNow = line.equalsIgnoreCase("quit");
      }
    } while (! quitNow);

  }
  //初始化上下文
  private 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);
    return new InitialContext(env);
  }

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -