ubuntu

如何在Ubuntu上配置WebLogic的JMS资源

小樊
47
2025-11-04 21:57:36
栏目: 智能运维

一、前置准备

在Ubuntu上配置WebLogic JMS资源前,需完成以下基础环境准备:

  1. 安装WebLogic Server:通过Oracle官方安装包在Ubuntu上部署WebLogic Domain(建议选择“典型安装”模式,简化配置流程)。
  2. 启动WebLogic服务:使用./startWebLogic.sh脚本启动Domain的AdminServer,确保服务正常运行(可通过http://<Ubuntu_IP>:7001/console访问管理控制台)。
  3. 配置JDK环境:WebLogic依赖JDK 8或更高版本,需提前安装并配置JAVA_HOME环境变量(如export JAVA_HOME=/usr/lib/jvm/java-8-oracle)。

二、配置持久化存储(必选)

持久化存储是JMS消息落地的关键,Ubuntu环境下推荐File Store(单节点)或JDBC Store(集群):

1. File Store配置(适用于单节点)

2. JDBC Store配置(适用于集群)

三、创建JMS服务器

JMS服务器是管理队列、主题的容器:

四、配置JMS模块与子部署

JMS模块是队列、连接工厂等资源的逻辑容器,子部署用于将资源关联到具体服务器:

1. 创建JMS模块

2. 创建子部署

五、创建JMS队列(核心操作)

队列用于**点对点(PTP)**消息模型:

六、创建连接工厂(客户端必备)

连接工厂用于客户端获取JMS连接,需与队列关联:

七、JMS资源管理操作

1. 查看与编辑资源

2. 删除资源

3. 监控资源状态

通过控制台的“Monitoring”标签,可实时查看队列的关键指标:

八、客户端连接与测试(Ubuntu环境)

在Ubuntu上编写Java客户端代码,通过JNDI查找队列并发送/接收消息:

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

public class JMSQueueTest {
    public static void main(String[] args) throws Exception {
        // 1. 配置JNDI环境
        Hashtable<String, String> env = new Hashtable<>();
        env.put(Context.INITIAL_CONTEXT_FACTORY, "weblogic.jndi.WLInitialContextFactory");
        env.put(Context.PROVIDER_URL, "t3://<Ubuntu_IP>:7001"); // 替换为Ubuntu服务器IP
        env.put(Context.SECURITY_PRINCIPAL, "weblogic"); // WebLogic管理员用户名
        env.put(Context.SECURITY_CREDENTIALS, "welcome1"); // WebLogic管理员密码
        
        // 2. 获取初始上下文
        Context ctx = new InitialContext(env);
        
        // 3. 查找连接工厂和队列
        ConnectionFactory cf = (ConnectionFactory) ctx.lookup("jms/MyConnectionFactory");
        Queue queue = (Queue) ctx.lookup("jms/MyQueue");
        
        // 4. 创建连接与会话
        Connection conn = cf.createConnection();
        Session session = conn.createSession(false, Session.AUTO_ACKNOWLEDGE);
        
        // 5. 创建生产者并发送消息
        MessageProducer producer = session.createProducer(queue);
        TextMessage message = session.createTextMessage("Hello, WebLogic JMS on Ubuntu!");
        producer.send(message);
        System.out.println("Message sent: " + message.getText());
        
        // 6. 创建消费者并接收消息
        MessageConsumer consumer = session.createConsumer(queue);
        conn.start();
        TextMessage receivedMsg = (TextMessage) consumer.receive(5000); // 等待5秒
        if (receivedMsg != null) {
            System.out.println("Message received: " + receivedMsg.getText());
        } else {
            System.out.println("No message received.");
        }
        
        // 7. 关闭资源
        consumer.close();
        producer.close();
        session.close();
        conn.close();
    }
}

注意事项

九、常见问题排查

0
看了该问题的人还看了