Weblogic JMS

简介

全称:WebLogic Server的Java Messaging Service(JMS)
WebLogic JMS 是与 WebLogic Server 平台紧密集成的企业级消息传递系统。
Java Message Service (JMS) API 是一种消息传递标准,允许基于 Java Platform Enterprise Edition (Java EE) 的应用程序组件创建、发送、接收和读取消息。它实现了松散耦合、可靠和异步的分布式通信。

JMS 的具体功能包括

  • 可在共享消息系统的 Java 应用程序之间交换消息
  • 用于创建、发送和接收消息的标准接口便于应用程序开发

JMS 支持两种消息传递模式:点对点 (PTP) 和发布/订阅。
WebLogic JMS 服务器架构的关键组件包括

  • 可托管一组预定义模块及其相关持久存储(位于 WebLogic Server 实例中)的 JMS 服务器。
  • 配置资源(查询、主题、连接工厂等),包括根据 http://xmlns.oracle.com/weblogic/weblogic-jms/1.4/weblogic-jms.xsd架构XML文档定义的JMS模块。
  • 客户端 JMS 应用程序。 向目的地生成消息或从目的地消费消息。
  • Java 命名和目录接口 (JNDI),提供资源查找功能。 JNDI 名称用于 JMS 资源(如连接工厂和目的地)的配置。
    这些资源的运行时实现使用特定名称绑定到 JNDI。
  • WebLogic 持久存储(文件存储或支持 JDBC 的数据库)用于存储持久消息数据。

后文介绍如何配置JMS以及使用对应API实现送收信息。

创建持久存储

WebLogic Console ->Services->Persistent Stores,中新建FileStore
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

创建JMS server

webLogic Console->Servcies->Messaging->JMS Servers新建JMS Server
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

配置消息通信JNDI

Servcies->Messaging->JMS Modules中新建JMS 模块
在这里插入图片描述
在这里插入图片描述
配置文件具体保存位置参考如下
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
进入新追加的JMS模块,在Subdeployments 中新建Subdeployment
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述进入新追加的jms_test_module2的Configuration中,新建资源。
在这里插入图片描述
资源类型选择连接工厂
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
继续新建资源,这次选择队列
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
继续新建资源,这次选择Topic
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

送收信代码实装

队列送信

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Hashtable;import javax.jms.*;
import javax.naming.*;public class QueueMsgSender {private final static String JNDI_FACTORY = "weblogic.jndi.WLInitialContextFactory";private final static String PROVIDER_URL = "t3://192.168.56.106:7001";private final static String JMS_FACTORY = "jms/jms_test_connection_factory1";private final static String JNDI_QUEQUE = "jms/jms_test_queue";private QueueConnectionFactory connectionFactory;private QueueConnection queueCon;private QueueSession qSession;private Queue queue;private QueueSender sender;private ObjectMessage objectMessage;public void init(Context ctx, String queueName)throws NamingException, JMSException {connectionFactory = (QueueConnectionFactory) ctx.lookup(JMS_FACTORY);queueCon = connectionFactory.createQueueConnection();//false: 将会话标记为非事务性的.非事务性的会话会立即发送消息。//Session.AUTO_ACKNOWLEDGE: 表示当客户端成功的从receive方法返回后,或者是在消息监听器成功返回后,会话会自动确认消息的接收qSession = queueCon.createQueueSession(false, Session.AUTO_ACKNOWLEDGE);//通过JNDI查找送信目标队列queue = (Queue)ctx.lookup(queueName);//使用会话和目标(队列)创建消息生产者(队列发送者)的引用sender = qSession.createSender(queue);//开始连接queueCon.start();}public void sendMsg(String msg) throws JMSException {User user = new User();user.setName(msg);user.setAge(18);objectMessage = qSession.createObjectMessage();objectMessage.setObject(user);sender.send(objectMessage);}public void readAndSend() throws IOException, JMSException {BufferedReader msgStream = new BufferedReader(new InputStreamReader(System.in));boolean quitNow = false;do {System.out.print("Enter message (\"quit\" to quit): \n");String line = msgStream.readLine();if (line != null && line.trim(

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/659824.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

深入Linux下的GCC编译器:从入门到精通

目录标题 1、GCC编译器概述2、安装GCC3、GCC的基本使用4、高级功能4.1 多文件编译4.2 静态和动态链接4.3 什么是链接?4.4 静态链接优点缺点 4.5 动态链接优点缺点 4.6 实际应用4.7 编译优化 GCC(GNU Compiler Collection)是一款免费、开源的编…

vue3【详解】vue3 比 vue2 升级了哪些重要的功能?

改用 createApp 初始化实例 vue2 使用 new Vue() 初始化实例 vue3 使用 Vue.createApp() 初始化实例 新增 emits 选项 vue3 选项式API中新增了emits 选项,用于显示声明组件中的自定义事件,自定义事件的名称,需用 on 开头。 export default {…

链表(基于C语言单向链表)

链表的实现的思想 链表表示一种是基于链接结构的线性表,链表实现的思想如下: 1、将表中的元素分别储存在一批独立的储存块里面。 2、表结构中的结点都能找到与之相关的下一个结点。 3、在前一个结点里用链表的方式显示的记录与下个结点之间的关联。 链…

Facebook的声音:听见社交媒体的心跳

社交媒体如今已经成为人们日常生活中不可或缺的一部分,而Facebook作为其中的佼佼者,承载着数以亿计的用户的交流、分享和连接。在这个信息爆炸的时代,Facebook的声音就像是社交媒体的心跳,传递着无数个体的情感、思想和生活。本文…

【数据结构】三、栈和队列:2.顺序栈共享栈(顺序栈的初始化,判空,进栈,出栈,读取栈顶,顺序栈实例)

文章目录 1.顺序栈1.1初始化1.2判空1.3进栈1.4出栈1.5读取栈顶1.6销毁栈❗1.7顺序栈c实例 2.共享栈2.1初始化2.2判满 1.顺序栈 用顺序存储实现的栈 顺序栈的缺点:栈的大小不可变。 #define MaxSize 10 //定义栈中元素的最大个数 typedef struct{ElemType data[…

如何把为知笔记导入到Notion笔记里面

💡 大家好,我是可夫小子,《小白玩转ChatGPT》专栏作者,关注AIGC、读书和自媒体。 为知笔记并不开放,笔记文件只能以pdf或者图片的方向导出来,无法与其他笔记文件相互导入导出,然而,稍…

【QT学习】13.使用TCP实现文件传输

一。传输文件流程 二。实现 结果: 1. server server类属性 Ui::Widget *ui;QTcpServer* pTcpServer;QTcpSocket* pTcpSocket;//文件与文件信息QFile file;QString m_fileName;qint64 m_fileSize; //整个文件大小qint64 fileSize; //当前已经发送的文件大小bool …

巅峰之战·成长之美丨 纷享销客中南战区伙伴同行者大会圆满成功

近日,为期2天的纷享销客中南战区伙伴同行者大会在北京成功举行,从全国各地奔赴而来的渠道伙伴共襄盛举。大会以”巅峰之战成长之美“为主题,共同探讨”双向奔赴 、健康经营、赢盈共进“的发展之道。 一、数智赋能,任重道远 纷享销…

第三方软件测试机构的优势

软件测试机构在软件开发和验收过程中扮演着至关重要的角色,其优势主要体现在以下几个方面: 专业性:软件测试机构通常拥有专业的测试团队,这些团队成员具备丰富的测试经验和深厚的专业知识,能够准确识别软件中的潜在问…

新唐的nuc980/nuc972的开发1-环境和源码同步

开发环境安装 1.1更新源 服务器端:可以参考:Linux替换清华源_更改清华源-CSDN博客 下面是桌面端的方法: 打开系统的软件中心,选择自己想要使用的源 更新缓存 1.2安装必须的库 apt-get install patch apt-get install libc6-dev …

微信机器人openai免注册信用卡生成api

简介 chatgpt-on-wechat (cow) 项目是使用 ChatGPT 搭建的智能聊天机器人,在GPT3.5/4.0 API 及 itchat框架的基础上实现,支持微信公众号、企业微信、钉钉、飞书部署,能生成文本、语音和图片,访问操作系统和互联网。 最新版本支持…

【Qt之·控件·样式表】

系列文章目录 文章目录 前言一、Qt样式表的基础知识1.1 Qt样式表的定义和语法规则1.2 Qt样式表中的选择器和属性1.2.1 盒子模型1.2.2 border 1.3 Qt样式表中的伪类和伪元素 二、编写基本的Qt样式表2.1 在Qt应用程序中引入样式表文件的方式2.2 设置基本的背景色、字体样式等 三、…