users@glassfish.java.net

Re: connectionFactory jndi lookup from standalone client

From: <glassfish_at_javadesktop.org>
Date: Mon, 20 Apr 2009 13:23:22 PDT

Replying to myself after solving my problem even if I didn't fully understand everything I did... but maybe this can be usefull to someone else

The thing is : starting a glassfish domain ALSO starts a JMS broker, even if the documentation is not clear regarding this subject.

configuration
-------------
Step #1 : declare the connection factory ("jms/myConnectionFactory") and the queue ("jms/myQueue") from the glassfish admin console (http://localhost:4848)
Step #2 : open the Open Message Queue Administration Console ([GLASSFISH_HOME]/imq/bin/imqadmin.exe)
Step #3 : Add a new broker and connect to the existing one (on primary port : 7676)
Step #4 : create a new broker destination ("myQueue")
Step #5 : create a new object store
        - java.naming.factory.initial = com.sun.jndi.fscontext.RefFSContextFactory
        - java.naming.provider.url = file:///C:/tmp (use an existing directory)
Step #6 : add a new destination object (lookupName = "jms/myQueue", destinationName="myQueue")
Step #7 : add a new connection factory object (lookupName="jms/myConnectionFactory")


to send a message to a queue from a standalone java client
----------------------------------------------------------

jndi.properties :
<-><-><-><-><-><-><-><-><-><-><-><-><-><-><-><-><-><-><-><-><-><-><-><->
java.naming.factory.initial = com.sun.jndi.fscontext.RefFSContextFactory
java.naming.provider.url = file:///C:/tmp
<-><-><-><-><-><-><-><-><-><-><-><-><-><-><-><-><-><-><-><-><-><-><-><->

sample groovy code :
<-><-><-><-><-><-><-><-><-><-><-><-><-><-><-><-><-><-><-><-><-><-><-><->
def initialContext = new InitialContext()
def connectionFactory = (ConnectionFactory) initialContext.lookup("jms/myConnectionFactory")
def queue = (Queue) initialContext.lookup("jms/myQueue")
initialContext.close()
<-><-><-><-><-><-><-><-><-><-><-><-><-><-><-><-><-><-><-><-><-><-><-><->


to send a message to a queue from a servlet deployed in glassfish
-------------------------------------------------------------------

web.xml :
<-><-><-><-><-><-><-><-><-><-><-><-><-><-><-><-><-><-><-><-><-><-><-><->
<resource-env-ref>
        <resource-env-ref-name>jms/myConnectionFactory</resource-env-ref-name>
        <resource-env-ref-type>javax.jms.ConnectionFactory</resource-env-ref-type>
</resource-env-ref>
<resource-env-ref>
        <resource-env-ref-name>jms/myQueue</resource-env-ref-name>
        <resource-env-ref-type>javax.jms.Queue</resource-env-ref-type>
</resource-env-ref>
<-><-><-><-><-><-><-><-><-><-><-><-><-><-><-><-><-><-><-><-><-><-><-><->

sample groovy code :
<-><-><-><-><-><-><-><-><-><-><-><-><-><-><-><-><-><-><-><-><-><-><-><->
def ic = new InitialContext()
def ctx = (Context) ic.lookup("java:comp/env")
def cf = (ConnectionFactory) ctx.lookup("jms/myConnectionFactory")
def queue = (Queue) ctx.lookup("jms/myQueue")
<-><-><-><-><-><-><-><-><-><-><-><-><-><-><-><-><-><-><-><-><-><-><-><-
[Message sent by forum member 'sc_wizard29' (sc_wizard29)]

http://forums.java.net/jive/thread.jspa?messageID=342926