WEB开发网
开发学院软件开发Java Standalone Client Lookup JNDI from the GlassFi... 阅读

Standalone Client Lookup JNDI from the GlassFish

 2009-09-24 00:00:00 来源:WEB开发网   
核心提示:最近在学习JMS的过程中,想练习些例子,Standalone Client Lookup JNDI from the GlassFish,可是又不想引入MDB,或者activeMQ之类的provider,也可以使用同样的方法,不过需要设置一下context中的参数了,单纯的JMS实例又没法访问 JNDI去创建conne

最近在学习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

Tags:Standalone Client Lookup

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接