Hi
I am trying to interface a web application with Websphere MQ series. The basic requirement
is that I need to send a xml message to a MQ queue. And then listen to another MQ queue
for the response and display the response back to the web user.
I tried a simple program that worked OK as follows -
1. Created/ Defined the Websphere MQ Connection factory / Queue using the JMSAdmin tool
(Webspeher MQ 6.0 is installed on Solaris 10).
2. The JNDI context used for the JMSAdmin tool was the JNDI namespace of the JBoss server
that is on another machine.
The JNDI was sucessfully accepted by JMSAdmin since the following is displayed when
starting JMSAdmin
Initializing JNDI Context...
INITIAL_CONTEXT_FACTORY: org.jnp.interfaces.NamingContextFactory
PROVIDER_URL: jnp://192.168.84.55:2099/
Done.
3. Defined the connection factory as follows
DEFINE CF(java:/jms.cnxFactory) +
SYNCPOINTALLGETS(YES) +
TRAN(client) +
HOST(192.168.14.204) CHAN(SVRCONN.MYSRV) PORT(1414) QMGR(MYSRV.QMGR)
DEFINE Q(java:/jms.myOwnQueue) QMGR(MYSRV.QMGR) QUEUE(MYQUEUE)
4. I wrote a simple java program that did the following
java.util.Hashtable environment = new java.util.Hashtable();
environment.put(Context.INITIAL_CONTEXT_FACTORY,
"org.jnp.interfaces.NamingContextFactory");
environment.put(Context.PROVIDER_URL, "jnp://192.168.84.55:2099/");
Context ctx = new InitialDirContext( environment );
ConnectionFactory factory = (ConnectionFactory)
ctx.lookup("java:/jms.cnxFactory");
And then I did a lookup of the queue and was able to put messages to the MQ sucessfully. I
was also able to read from the same queue via JMS.
5. I then tried out the same on my web application that uses struts - ejb (session beans
only). I did the same call as above from my struts layer. I was expecting the context to
be retrived and that I can send the messages. But I got a Naming exception saying the jndi
name was not bound. The web application is deployed on the same Jboss server.
Why is it that the jndi lookup fails when called from the web application while it is OK
from a simple java program that is outside the jboss container ?
6. I would want to move the context looup and send / receive of messages via JMS into/from
the MQ queue using session beans. I could only find MDB examples. My requirement requires
that I manage the transaction such that session bean handles the message send / recieve to
simulate a synchronous call. So, I cannot use MDB since it would then be async. Any
thought on where I could get some documentation to configure Jboss to allow the session
beans to do the jndi lookup to the JMS queues whihc have teh Webpshere MQ as the provider
?
Thanks
View the original post :
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4204947#...
Reply to the post :
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&a...