You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从Spring Java应用向WebLogic的JMS队列发送消息并配置端口

解决Spring应用向WebLogic特定队列发送消息的配置问题

一、查找WebLogic的JMS连接端口

WebLogic的JMS服务不为单个队列分配独立端口,所有JMS连接都通过目标服务器的监听端口建立,查找方式如下:

  • 通过WebLogic控制台查看:
    1. 登录WebLogic管理控制台
    2. 左侧域结构中点击「环境」→「服务器」
    3. 选择部署了目标JMS模块的服务器
    4. 切换到「监听端口」标签页,记录tcp协议对应的端口(默认通常为7001,SSL端口默认7002)
  • 通过配置文件查看:
    找到WebLogic域目录下的config/config.xml,搜索<listen-port>标签,标签内的数值即为服务器监听端口。

二、修改Spring应用配置(替换原有ActiveMQ配置)

原配置针对ActiveMQ设计,连接WebLogic JMS需调整依赖和配置:

1. 添加WebLogic JMS客户端依赖(Maven示例)

<dependency>
    <groupId>com.oracle.weblogic</groupId>
    <artifactId>wlfullclient</artifactId>
    <version>12.2.1.4.0</version> <!-- 需与你的WebLogic版本匹配 -->
    <scope>provided</scope> <!-- 若WebLogic服务器已内置该依赖,可设为provided -->
</dependency>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-jms</artifactId>
</dependency>

2. 配置文件替换(application.properties)

# WebLogic JMS连接配置
spring.jms.weblogic.url=tcp://<WebLogic服务器IP>:<上述找到的监听端口>
spring.jms.weblogic.user=<WebLogic授权用户名>
spring.jms.weblogic.password=<对应密码>
# 目标队列的JNDI名称(需从WebLogic控制台获取)
spring.jms.template.default-destination=<队列的JNDI名称>

3. 获取队列的JNDI名称

  1. 登录WebLogic控制台
  2. 左侧域结构点击「服务」→「消息传递」→「JMS模块」
  3. 找到你的JMS模块,点击进入后选择目标队列
  4. 切换到「JNDI」标签页,复制对应的JNDI名称(格式通常为jms/XXXQueue)

三、发送消息代码示例

import org.springframework.jms.core.JmsTemplate;
import org.springframework.stereotype.Component;

@Component
public class QueueSender {

    private final JmsTemplate jmsTemplate;

    // 构造注入JmsTemplate
    public QueueSender(JmsTemplate jmsTemplate) {
        this.jmsTemplate = jmsTemplate;
    }

    // 发送消息到默认队列
    public void sendToDefaultQueue(String content) {
        jmsTemplate.convertAndSend(content);
    }

    // 发送消息到指定队列(传入目标队列JNDI名称)
    public void sendToSpecificQueue(String queueJndi, String content) {
        jmsTemplate.convertAndSend(queueJndi, content);
    }
}

注意事项

  • 确保WebLogic服务器的监听地址设置为可远程访问的IP(而非仅localhost),否则Spring应用无法连接
  • 检查WebLogic用户是否拥有JMS消息发送的权限,可在控制台「安全」→「策略」中配置对应权限
  • 客户端依赖版本必须与WebLogic服务器版本一致,避免兼容性问题

内容的提问来源于stack exchange,提问作者Julian Gomez

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 19:20:09