JMS sample with glassfish

基于Simulink与Arduino的光伏系统数字孪生与故障诊断实战 数字孪生技术通过构建物理实体的虚拟映射,实现对系统状态的实时监控、仿真分析与预测性维护。其核心原理在于利用传感器采集实时数据驱动高保真仿真模型运行,通过比对虚拟与实体世界的差异,洞察系统内在状态。这项技术在工业自动化、新能源等领域具有重要价值,能有效提升系统效率与可靠性。在光伏发电系统中,它被用于解决“效率黑箱”问题,实现精准的故障诊断与性能优化。本文以太阳能光伏系统为具体应用场景,深入剖析了如何利用Simulink进行动态系统建模与仿真,并结合Arduino开源硬件平台实现实时数据采集,构建一个完整的“硬 阅读详情

1. cat send.java
package myjmssample;

import java.util.Properties;
import javax.jms.Queue;
import javax.jms.QueueConnection;
import javax.jms.QueueConnectionFactory;
import javax.jms.QueueSender;
import javax.jms.QueueSession;
import javax.jms.Session;
import javax.jms.TextMessage;
import javax.naming.Context;
import javax.naming.InitialContext;

public class send {

  public static void main(String[] args) {
    String queueConnectionFactoryName = "JMSConnFactory";
    String queueName = "JMSDestResource";

    boolean transacted = false;
    int acknowledgementMode = Session.AUTO_ACKNOWLEDGE;
    String message="Message need to send";

    Properties properties = new Properties();
    properties.put( Context.PROVIDER_URL, "iiop://localhost:3700" );
    properties.put( Context.INITIAL_CONTEXT_FACTORY,"com.sun.appserv.naming.S1ASCtxFactory" );


    try {
      Context context = new InitialContext(properties);
      Object obj = context.lookup(queueConnectionFactoryName);
      QueueConnectionFactory queueConnectionFactory = (QueueConnectionFactory) obj;

      obj = context.lookup(queueName);
      Queue queue = (Queue) obj;

      QueueConnection queueConnection=queueConnectionFactory.createQueueConnection();
      queueConnection.start();
      QueueSession queueSession = queueConnection.createQueueSession(transacted, acknowledgementMode);
      TextMessage textMessage = queueSession.createTextMessage();
      textMessage.clearBody();
      textMessage.setText(message);

      QueueSender queueSender = queueSession.createSender(queue);
      queueSender.send(textMessage);

      if (transacted) {
        queueSession.commit();
      }

      if (queueSender != null) {
        queueSender.close();
      }

      if (queueSession != null) {
        queueSession.close();
      }

      if (queueConnection != null) {
        queueConnection.close();
      }

    }
    catch(Exception ex){
      ex.printStackTrace();
    }
  }
}

2. cat recv.java
package myjmssample;

import java.util.Properties;
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.jms.TextMessage;
import javax.naming.Context;
import javax.naming.InitialContext;

public class recv implements MessageListener {
  public void onMessage(Message message) {
    if (message instanceof TextMessage) {
      TextMessage textMessage = (TextMessage) message;
      try {
        System.out.println("Message content is:" + textMessage.getText());
      }
      catch (JMSException e) {
        e.printStackTrace();
      }
    }
  }

  public static void main(String[] args) {

    recv msgRcvr=new recv();
    String queueConnectionFactoryName = "JMSConnFactory";
    String queueName = "JMSDestResource";

    boolean transacted = false;
    int acknowledgementMode = Session.AUTO_ACKNOWLEDGE;

    Properties properties = new Properties();
    properties.put( Context.PROVIDER_URL, "iiop://localhost:3700" );
    properties.put( Context.INITIAL_CONTEXT_FACTORY,"com.sun.appserv.naming.S1ASCtxFactory" );


    try {
      Context context = new InitialContext(properties);
      Object obj = context.lookup(queueConnectionFactoryName);
      QueueConnectionFactory queueConnectionFactory = (QueueConnectionFactory)
          obj;

      obj = context.lookup(queueName);
      Queue queue = (Queue) obj;

      QueueConnection queueConnection = queueConnectionFactory.
          createQueueConnection();
      queueConnection.start();
      QueueSession queueSession = queueConnection.createQueueSession(transacted,
          acknowledgementMode);
      QueueReceiver queueReceiver = queueSession.createReceiver(queue);

      queueReceiver.setMessageListener(msgRcvr);

      synchronized(msgRcvr){
        msgRcvr.wait(100000);
      }

      if (queueReceiver != null) {
        queueReceiver.close();
      }

      if (queueSession != null) {
        queueSession.close();
      }

      if (queueConnection != null) {
        queueConnection.close();
      }

    }
    catch (Exception ex) {
      ex.printStackTrace();
    }
  }
}

3. cat setClassPath.sh
#!/bin/ksh
export CLASSPATH=$CLASSPATH:/u/ainet/hui/openesb/glassfish-v2-ur2-b04-patch-20080616/lib/javaee.jar
export CLASSPATH=$CLASSPATH:/u/ainet/hui/openesb/glassfish-v2-ur2-b04-patch-20080616/lib/appserv-rt.jar
export CLASSPATH=$CLASSPATH:/u/ainet/hui/openesb/glassfish-v2-ur2-b04-patch-20080616/lib/appserv-admin.jar
export CLASSPATH=$CLASSPATH:/u/ainet/hui/openesb/glassfish-v2-ur2-b04-patch-20080616/lib/appserv-ext.jar
export CLASSPATH=$CLASSPATH:/u/ainet/hui/openesb/glassfish-v2-ur2-b04-patch-20080616/lib/install/applications/jmsra/imqjmsra.jar
export CLASSPATH=$CLASSPATH:./

4. compile
    . setClassPath
    javac myjmssample/send.java
    javac myjmssample/recv.java

5. run
    5.1 - Configure GlassFish JMS
       create Connection Factories = " JMSConnFactory"
       create Destination Resources = " JMSDestResource"
      
      

  5.2 run java myjmssample/send
        run java myjmssample/recv   

JMS_Glassfish-3-Server:在 Glassfish 3 服务器中实现 JMS JMS_Glassfish-3-Server 在 Glassfish 3 服务器中实现 JMS 管理系统: 它是一个用于创建、读取和发送消息的 API。 它是一个消息服务提供者,用于从一个应用程序向另一个应用程序发送和接收消息。 通常,用户向应用程序发送消息。 但是,如果我们想从一个应用程序向另一个应用程序发送消息,我们需要使用 JMS API。 例如:如果一个应用程序 A 在印度运行而另一个应用程序 B 在美国运行,为了从 A 向 B 发送消息,我们需要使用 JMS。 JMS的优势: 异步 - 要接收消息,客户端不需要发送请求。 消息将自动到达客户端。 可靠 - 提供消息传递的保证。 消息域:- 点对点(消息只分发给一个客户端,这里使用队列) 发布者/订阅者(一条消息传递给所有订阅者,如广播) JMS 队列示例:- 安装 glassfish3 服务器并创建两个 JNDI 立即下载

相关推荐

当GO.db安装失败时,生物信息学新手应该知道的5个底层逻辑

本文为生物信息学新手提供了解决GO.db安装失败的5个关键底层逻辑,包括网络连接与镜像源设置、版本兼容性检查、依赖关系管理、SQLite存储机制理解以及调试技巧。特别针对Bioconductor的GO.db包安装问题,详细介绍了如何通过切换国内镜像、管理版本冲突和解决依赖问题来成功安装,帮助用户高效克服常见安装障碍。

weixin_29062823的博客 407

使用 GlassFish 实现 JMS 消息传递

摘要:对于当今的电子商务来说,在分布式异构系统之间进行通信已经成为不可避免的需求。现在,随着 Java 消息服务 (JMS) 等消息标准的出现,开发松散耦合的同步或异步通信分布式系统(用于交换商务数据和事件)已经非常简单。  本文主要介绍如何使用 JMS 和消息驱动 Beans( Message-Driven Beans ,MDB )进行消息传递,特别是企业消息传递的详细信息。本文还将介绍 Gla...

数据库天地 292

QMT量化交易实战:如何用通达信预警数据自动买卖股票(附完整Python代码)

本文详细介绍了如何利用QMT平台对接通达信预警数据,构建自动化股票交易系统。通过完整的Python代码示例,展示了从数据获取到订单执行的全流程,帮助投资者实现量化交易策略的自动化执行,提升交易效率。

weixin_29234423的博客 210

GlassFish JMS 配置

物理目的地名称不能包含('/') ,大家一般喜欢把它和 JNDI 的名称统一起来 (jms/topic), 可是不行其他的配置只要点几下鼠标即可代码 (NetBeans EE project :pserver:pprun@cvs.dev.java.net:/cvs/hjpetstore/MyJMS)1. 服务器端 (MDB - the subscriber)/** To change this...

杨镇宇的博客 607

音频功放电路大全

作为硬件工程师,特别是做纯粹模拟电路、应用于音频功放的工程师,对于A类,B类,AB类,D类,G类,H类,T类功放应该特别熟悉。大多数工程师或许只知道其中的一部分、或者知道大概,为了让更多的工程师掌握更加详尽的音频功放知识,下文对以上说的音频功放做详细的说明。 功放,顾名思义,就是功率放大的缩写。与电压或者电流放大来说,功放要求获得一定的、不失真的功率,一般在大信号状态下工作,因此,功放电路一般包含电压放大或者电流放大电路没有的特殊问题,具体表现在:①输出功率尽可能大;②通常在大信号状态下工作;③非线性失真突

ltqdxl的博客 6595

模拟电子课设-半导体直流稳压电源的设计和测试

1、学习直流稳压电源的设计方法; 2、研究直流稳压电源的设计方案; 3、掌握直流稳压电路的调试及主要指标的测试方法。二、设计要求和技术指标 1、设计要求1)、设计一个能输出5V-12V连续可调的直流稳压电源,或±12V的直流稳压电源; 2)、根据设计要求和技术指标设计好电路,选好元件及参数,要求绘出原理图,并用Protel 99SE/DXP画出印制板图; 3)、在万能板或面包板上制作一台直流稳压电源; 4)、测量直流稳压电源的稳压系数; 5)、测量直流稳压电源的内阻; 6)、拟定测试方案和设计步

GJZGRB的博客 1971

A simple JMS sample with glassfish

1, JMS message producer  使用WebListener是为了能部署到GlassFish, 这样就可以使用@Resource注入  当然,connectionFactory 和 topic要在glassfish中配置好  接下来就是通过JMS API发送消息了,非常简单:  2, JMS Message Consumer part   consumer...

xx_forestking的专栏 185

“华为”云桌面系统声音比较小,如何调大?

调整操作系统声音 开启云桌面,登录账户之后,进入操作系统,鼠标左键点击右下角的声音图标,把声音调到最大(如下图); 可以考虑使用浏览器在线听音乐,确定声音的音量! 如果只是耳麦声音小,可以鼠标右键点击声音图标,选择录音设备(R),如下图: 点击“录音设备(R)”后进入,鼠标右键点击“麦克风”选择属性,将侦听级别调至最大,确定! 调整华为云终端声音(软设置) 将鼠标移至桌面的顶端中间位置,打开如下图的样式图标,鼠标左键点击“主页”; 点击“主页”之后,将回到云桌面的终端操作界面,

shunchang的专栏 2336

<Ejb3InAction> Sample04 for Glassfish - MDB Samples

0. Prerequisite We use default jms/__defaultConnectionFactory as JMS connection factory, and create a queue as following : 1. Customize code in chapter4

sun_xo的博客 306

KG²RAG框架:知识图谱增强大模型检索生成技术解析

知识图谱(Knowledge Graph)作为结构化知识表示的重要方式,与向量检索技术结合形成了新一代检索增强生成(RAG)框架。其核心原理是通过图神经网络编码器提取子图特征,并与文本向量空间对齐,实现结构化与非结构化知识的协同检索。这种技术显著提升了专业领域问答的事实准确性,在医疗诊断、金融分析等需要高可靠性响应的场景中具有重要价值。KG²RAG框架创新性地采用双通道处理架构,结合Neo4j等图数据库与Milvus向量数据库,通过动态检索调度器智能选择最优检索路径。实测表明该方案能降低40%以上的事实错误

weixin_29306875的博客 105

catia之车灯设计——灯玻加厚之后(单层灯玻、多层灯玻的设计)

加厚完A面后如果主机厂没有给其他的面我们该怎么做?

qq_19829077的博客 1304

<Ejb3InAction> Sample01 for Glassfish - HelloUser EJB

0. Prerequisite 1) Download Weblogic based sample code from following URL, and extract to your directory.     https://www.manning.com/books/ejb3-in-action My directory is $HOME/student/ejbactGF

sun_xo的博客 525

【AI大模型:前沿】46、AI+无人机:智能飞行革命全景指南——从技术突破到行业应用与未来趋势

AI+无人机的融合不仅是技术迭代,更是“空间生产力”的革命——它将人类活动范围从地面拓展至低空,重构物流、农业、应急等行业的生产方式。当前,技术突破(如多模态感知、群体智能)与法规松绑(超视距飞行许可)正加速产业化,预计2030年全球低空经济市场规模将突破万亿美元。技术层:轻量化AI模型、边缘-云端协同、安全冗余系统;应用层:垂直领域解决方案(如电网AI巡检、精准农业);生态层:无人机巢建设、空管系统、数据服务平台。

2025博客之星Top81。专注AI工程化与架构实战。从分布式思维到模型部署,用工程化视角为你厘清AI落地的真实路径。 5591

<Ejb3InAction> Sample02 for Glassfish - Simple example of Stateless, Stateful, MDB and JPA Enity

0. Prerequisite 1) JDBC resources We use default JDBC resources, which is based on database sun-appserv-samples:     Connection pool – DerbyPool     Resource – jdbc/__default 2) JMS res

sun_xo的博客 456

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

4 Open Source Application Servers (Comparison and Review)

New open source technologies are changing the way organizations develop and deploy applications. In this article, we review fourleading open source application servers. Compare each tool based on bus...

BRAVE MAN的博客 318

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

glassfish体验二

JMS的各种资源都已经创建好了,下面将介绍如何发送一条消息到JMS的队列里。 有两种方式来写客户端代码,使用annotation或者不使用。 1、使用annotation 1)创建web工程。 在eclipse里创建web工程很简单。”File“-”New“-”Web Project“,然后输入工程名:TestJMS2,然后”Finish“。 2)新建Servlet...

lu2002lulu的专栏 278

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

从sample入手学习JMS

  第一章  搭建环境如果机器上没有装jdk,先安装一下。我装的是jdk1.6;从sun官网下载jms-1_1-fr-apidocs.zip,解压可见jms1.1目录;从sun官网jms-1_0_2-upd-sampleprograms.zip,解压到samples目录;从jboss官网下载jboss-5.0.0.GA.zip,解压可见jboss-5.0.0.GA目录;

winniepu的专栏 2078

GlassFish 3.1.1 的JMS 独立客户端编程

下面文章很长,至于我的最终解决方法是 在 独立客户端的项目上右键-&gt;库-&gt;添加JAR/Folder 加入 C:\Program Files\glassfish-3.1.2\glassfish\lib\gf-client.jar 文件     最近一直在关注JMS,起因是从Magento 的PHP系统向JMS发送消息。实验了ActiveMQ,GlassFish与ActiveMQ...

杨镇宇的博客 487

JMS在glassfish中的使用(1)——JMS入门

通常使用JMS,我想要做的事是,让客户端应用(桌面应用),通过JMS接收和发送信息到服务器(EJB3).以往的例子是用eclipse开发一个RCP程序,通过JMS连上JBOSS....诸如此类的应用。当然桌面应用连接服务器有至少3种方式,这里就别争论这些问题了。 开始工作 准备:1 安装好glassfishv2.1(现在可以安装更新版本) 2 准备好eclipse或者myec...

横扫中老年 315

Tomcat,JBoss和Glassfish有什么区别?

I am starting to look into Enterprise Java and the book I am following mentions that it will use JB

xfxf996的博客 942

JMSSample

JMSSampleJMSSample Preface 环境工具 JMS 基本概念 workspaceServerstomcatcontextxml 在tomcat中配置JNDI可参考activeMQ及tomcatExpert 创建publisher 创建异步 message consumer indexjsp 置于WebContent 下 indexjsp 置于WebContent 下 修改webx

Tristan_Jia的专栏 567

Java EE 7:带有Glassfish v4的JMS 2.0

Java EE 7最近已被执行委员会接受 。 这意味着我们很快将在市场上提供Java EE 7应用服务器。 构成Java EE 7的规范之一是JMS 2.0 。 自1.1版以来,引入了一些有趣的改进。 JMS有很多怪异的东西,例如: Connection#createSession(boolean Transacted,int acceptMode)方法。 第一个方法参数( tran...

最佳 Java 编程 221
上一篇: 查找端口被哪个进程占用
下一篇: BPEL and Java
假装80后
博客等级 码龄19年 28粉丝 249原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值