首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

GlassFish 獨立客戶端 JNDI 查找實戰:JMS 與 EJB 遠程訪問

     編輯:Java 相關知識

場景:無 MDB/ActiveMQ 的純 JMS 測試

需在獨立 Java 客戶端通過 JNDI 獲取 GlassFish 中配置的 ConnectionFactory 與 Queue 進行 JMS 測試,避免引入額外 Broker。

GlassFish 服務端配置

  1. 管理主控台建立 JMS 資源:
    • Connection Factory: jms/MyConnectionFactory (類型 javax.jms.QueueConnectionFactory)
    • Destination Resource: jms/MyQueue (類型 javax.jms.Queue)

獨立客戶端 Classpath 必備 JAR

從 $GLASSFISH_HOME/lib 複製:

  • appserv-rt.jar
  • javaee.jar
  • appserv-deployment-client.jar
  • appserv-ext.jar
  • appserv-admin.jar
  • imqjmsra.jar (JMS 提供者)

JMS JNDI 查找代碼

// 預設 InitialContext 自動讀取 classpath 下的 jndi.properties
Context context = new InitialContext();
QueueConnectionFactory qcf = (QueueConnectionFactory) context.lookup("jms/MyConnectionFactory");
Queue queue = (Queue) context.lookup("jms/MyQueue");

// 後續標準 JMS 流程
QueueConnection conn = qcf.createQueueConnection();
QueueSession session = conn.createQueueSession(false, Session.AUTO_ACKNOWLEDGE);
QueueSender sender = session.createSender(queue);
TextMessage msg = session.createTextMessage("Hello GlassFish JMS");
sender.send(msg);

關鍵點:無需額外 Properties,appserv-rt.jar 內置 jndi.properties 指向 GlassFish 預設命名服務。

EJB 遠程訪問擴展

若需查找遠程 EJB,必須顯式配置 CORBA 通訊參數:

Properties props = new Properties();
props.setProperty("java.naming.factory.initial", "com.sun.enterprise.naming.SerialInitContextFactory");
props.setProperty("java.naming.factory.url.pkgs", "com.sun.enterprise.naming");
props.setProperty("java.naming.factory.state", "com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl");
props.setProperty("org.omg.CORBA.ORBInitialHost", "localhost");
props.setProperty("org.omg.CORBA.ORBInitialPort", "3700"); // GlassFish 預設 IIOP 埠

Context context = new InitialContext(props);
MyRemote ejb = (MyRemote) context.lookup("ejb/MyRemote");

參考:GlassFish EJB FAQ

總結

  • JMS 測試:僅需預設 InitialContext,極簡配置
  • EJB 遠程:必須指定 CORBA 初始化參數
  • 所有 JAR 來自 GlassFish 安裝目錄,版本自動匹配
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved