openjms的使用

原创 2006年06月07日 15:39:00

使用的是rmi,tcp,tcps方式。采用订阅模式。

下载openjms代码,然后把.jar包放到程序里面。

//receiver.java接收

import java.util.*;
import javax.jms.*;
import javax.naming.*;

import com.util.ReadProperties;

public class receiver {
 private TopicSubscriber m_topicSubscriber;

 public receiver(String strtopic) {
  try {
   // 取得JNDI上下文和连接
   /*
    * Hashtable properties = new Hashtable();
    * properties.put(Context.INITIAL_CONTEXT_FACTORY,
    * "org.exolab.jms.jndi.InitialContextFactory");
    * properties.put(Context.PROVIDER_URL, "rmi://" +
    * ReadProperties.get("jms_serversIP") + ":" +
    * ReadProperties.get("jms_serversPort") + "/"); Context context =
    * new InitialContext(properties);
    */

   Hashtable properties = new Hashtable();
   properties.put(Context.INITIAL_CONTEXT_FACTORY,
     "org.exolab.jms.jndi.InitialContextFactory");
   properties.put(Context.PROVIDER_URL, "tcps://192.168.0.205:3036/");

   properties.put("org.exolab.jms.net.tcps.keyStore",
     "E://works//note_name//src//client.keystore");
   properties.put("org.exolab.jms.net.tcps.keyStorePassword",
     "openjms");
   properties.put("org.exolab.jms.net.tcps.trustStore",
    "C://jsdk2//jre//lib//security//cacerts");
   System.err.println("gggggggggggggggggggggggggggg" + properties);
   Context context = null;

     context = new InitialContext(properties);


   System.err.println("gggggggggggggggggggggggggggg");

   // 获得Topic工厂和Connection
   TopicConnectionFactory factory = (TopicConnectionFactory) context
     .lookup("JmsTopicConnectionFactory");
   TopicConnection topicConnection = factory.createTopicConnection();
   topicConnection.start();

   // 创建Topic的会话,用于接收信息
   TopicSession topicSession = topicConnection.createTopicSession(
     false, Session.AUTO_ACKNOWLEDGE);

   // lookup topic1
   Topic topic = (Topic) context.lookup(strtopic);
   // 创建Topic subscriber
   m_topicSubscriber = topicSession.createSubscriber(topic);

  } catch (NamingException e) {
   e.printStackTrace();
  } catch (JMSException e) {
   e.printStackTrace();
  }
 }

 public String Recv() {
  String ret = "";
  try {
   // 同步消息接收,使用receive方法,堵塞等待,直到接收消息

   TextMessage message = (TextMessage) m_topicSubscriber.receive();
   ret = message.getText();
   return ret;
  } catch (JMSException e) {
   e.printStackTrace();
  }
  return ret;
 }

 public static void main(String[] args) {
  receiver rec = new receiver("Data_longcode_Recv");
  String re = rec.Recv();
  System.err.println(re);
 }
}

 

//Sender.java发送

import java.util.*;

import javax.jms.*;
import javax.naming.*;

import org.exolab.jms.net.util.SSLProperties;
import org.exolab.jms.server.net.ConnectorCfgFactory;
import com.sp.oscache.OSCache;
import com.util.*;

public class Sender {

 private TopicPublisher m_topicPublisher;

 private TopicSession m_topicSession;

 private int binit = 0;

 public Sender(String strtopic) {
  try {
   // 取得JNDI上下文和连接
  /* Hashtable properties = new Hashtable();
   properties.put(Context.INITIAL_CONTEXT_FACTORY,
     "org.exolab.jms.jndi.InitialContextFactory");
   // openJms默认的端口是1099
   // properties.put(Context.PROVIDER_URL,
   // "rmi://192.168.0.117:1099/");
   System.err.println(ReadProperties.get("jms_serversIP"));
   properties.put(Context.PROVIDER_URL, "rmi://"
     + ReadProperties.get("jms_serversIP") + ":"
     + ReadProperties.get("jms_serversPort") + "/");
*/
   Hashtable properties = new Hashtable();
   properties.put(Context.INITIAL_CONTEXT_FACTORY,
     "org.exolab.jms.jndi.InitialContextFactory");
   properties.put(Context.PROVIDER_URL, "https://192.168.0.206:3035");

   properties.put("org.exolab.jms.net.https.keyStore",
     "E://works//note_name//src//client.keystore");
   properties.put("org.exolab.jms.net.https.keyStorePassword",
     "openjms");
   properties.put("org.exolab.jms.net.https.trustStore",
    "C://jsdk2//jre//lib//security//cacerts");
   System.err.println("gggggggggggggggggggggggggggg" + properties);
   Context context = new InitialContext(properties);
   System.err.println("gggggggggggggggggggggggggggg");

   // 获得JMS Topic连接队列工厂
   TopicConnectionFactory factory = (TopicConnectionFactory) context
     .lookup("JmsTopicConnectionFactory");

   // 创建一个Topic连接,并启动

   TopicConnection topicConnection = factory.createTopicConnection();
   topicConnection.start();

   // 创建一个Topic会话,并设置自动应答
   m_topicSession = topicConnection.createTopicSession(false,
     Session.AUTO_ACKNOWLEDGE);

   // lookup 得到 topic1
   Topic topic = (Topic) context.lookup(strtopic);
   // 用Topic会话生成Topic发布器
   m_topicPublisher = m_topicSession.createPublisher(topic);
   binit = 1;
  } catch (NamingException e) {
   e.printStackTrace();
  } catch (JMSException e) {
   e.printStackTrace();
  }
 }

 public void Send(String strmsg) {
  if (binit == 0)
   System.out.println("请先初始化jms");
  try {

   TextMessage message = m_topicSession.createTextMessage(strmsg);
   m_topicPublisher.publish(message);
  } catch (JMSException e) {
   e.printStackTrace();
  }
 }

 public static void main(String[] args) {
  Sender send = new Sender("Data_longcode_Recv");
  send.Send("hello");
 }
}

 

OpenJMS安装配置及其验证测试

Open JMS 安装测试 1、内容简述 开源的JMS服务器openJms,及怎样使用openJms来构建系统之间健全、高度可用的通讯,从而简化企业级应用的开发。openJms符合SUN的JMS ...
  • boonya
  • boonya
  • 2013年09月24日 23:37
  • 1679

OpenJMS程序实现消息的发送和接收

1、消息发送者(Sender) package com.boonya.openjms; import java.util.Hashtable; import javax.jms.JMSExcept...
  • boonya
  • boonya
  • 2013年09月24日 23:47
  • 1808

OpenJMS主题发布和订阅

1、主题发布(Publisher) package com.boonya.openjms; import java.util.Hashtable; import javax.jms.JMSExce...
  • boonya
  • boonya
  • 2013年09月25日 00:08
  • 1312

MyBatis -- 一步步教你使用MyBatis

1、建立开发环境 1.1  创建项目,java项目或者javaweb项目均可,如图: 1.2  添加所需要的jar包到项目lib目录下 一个MyBatis-3.2.4.jar包 一个驱动包...
  • u014034854
  • u014034854
  • 2015年08月05日 21:19
  • 3618

Nginx基本使用方法

Windows下Nginx+Tomcat整合的安装与配置
  • liuhailiuhai12
  • liuhailiuhai12
  • 2017年07月12日 13:52
  • 4052

MATLAB使用入门

作者:朱金灿来源:http://blog.csdn.net/clever101            初步学习了MATLAB的使用,发现MATLAB是一个很好的算法仿真工具。MATLAB也是一门语言,...
  • clever101
  • clever101
  • 2013年12月18日 14:00
  • 3338

GreenDao框架使用教程

github地址:https://github.com/greenrobot/greenDAO 1、首先建立一个java工程的Generator,注意是java工程不是android工程。导入free...
  • LuckChouDog
  • LuckChouDog
  • 2016年04月28日 16:27
  • 2626

matplotlib的基本使用方法

原文 使用python的科学计算库,达到快速计算的效果。标准的Python中用列表(list)保存一组值,可以当作数组使用。但由于列表的元素可以是任何对象,因此列表中保存的是对象的指针。这样一来,为...
  • u010602026
  • u010602026
  • 2017年03月30日 08:19
  • 2337

Endnote 基本使用教程

Endnote 使用教程一、 安装百度网盘:http://pan.baidu.com/s/1eSyufL4二、 使用教程1. 查找文献:从各大期刊检索网站上面选择需要的文献,使用endnote格式...
  • u012878602
  • u012878602
  • 2016年12月28日 14:41
  • 6320

freemarker的学习和使用

freemarker是一款模板引擎,它实现程序逻辑和页面设计的分离,完成静态文本的输出。它不是web开发框架,准确来说,它仅仅只是我们MVC开发下,视图层的一个组件而已。...
  • siqilou
  • siqilou
  • 2015年03月16日 20:00
  • 2688
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:openjms的使用
举报原因:
原因补充:

(最多只允许输入30个字)