程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> Standalone Client Lookup JNDI from the GlassFish

Standalone Client Lookup JNDI from the GlassFish

編輯:關於JAVA

最近在學習JMS的過程中,想練習些例子,可是又不想引入MDB,或者activeMQ之類的provider,單純的JMS實例又沒法訪問 JNDI去創建connection,百般查找和嘗試後發現,可以在GlassFish中創建JMS的ConnectionFactory和Queue,然後在Client中通過JNDI在GlassFish中進行查找。

首先,在classpath中需要加入GlassFish的相關jar:

appserv-rt.jar

javaee.jar

appserv-deployment-client.jar

appserv-ext.jar

appserv-admin.jar

imqjmsra.jar

然後在代碼中new一個默認的context就可以了:

Context context = new InitialContext();
QueueConnectionFactory queueConnectionFactory =
(QueueConnectionFactory)context.lookup(QUEUE_CON_FACTORY);

這樣就可以直接在java代碼中通過main函數來測試你的JMS例子了。

同時,也發現一個類似的用法,如果想通過一個獨立的java client去訪問GlassFish中的EJB的話,也可以使用同樣的方法,不過需要設置一下context中的參數了,如下:

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");  //host
props.setProperty("org.omg.CORBA.ORBInitialPort", "3700");  //EJB Port
Context context = new InitialContext(props);

關於EJB的訪問方式,可參考:https://glassfish.dev.java.net/javaee5/ejb/EJB_FAQ.html

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved