Question

I need to look up a websphere 7 queue from JNDI (Configured SIB). First I wrote a client program which access remote websphere server. I added com.ibm.ws.admin.client, com.ibm.ws.runtime, com.ibm.ws.sib.client.thin.jms and com.ibm.ws.webservices.thinclient jar files.

Code as follows.

Hashtable<String, Object> env = new Hashtable<String, Object>();
env.put(Context.INITIAL_CONTEXT_FACTORY,
                    "com.ibm.websphere.naming.WsnInitialContextFactory");
env.put(Context.PROVIDER_URL, "iiop://localhost:2809");

This does not work well as I am accessing it as a remote client. Hence I added this,

env.put("java.naming.corba.orb",org.omg.CORBA.ORB.init((String[])null,null));

This works fine for now. Then I removed the above line and move the target JDK to IBM JDK. In that case it works without any issue as well.

Actual issue faced when I need to access the above queue in a server program. This runs on a separate JVM. When I try to access the remote JNDI queue it gives me a class cast exception. I believe its because it load the default sun ORB implementation instead of IBM. I added com.ibm.ws.orb jar as well still no luck. It loads the Sun ORB. Hence it gives the class cast exception.

Like above I don't have the facility to load the org.omg.CORBA.ORB. Is there any way I can run this? Am I missing something? Any feedback from Websphere 8.5 is also welcome.

Note: This is not Websphere MQ. I am referring to Websphere application server queue.

No correct solution

OTHER TIPS

Hmmm... tricky. You could maybe try packaging the client jar file which worked previously with the EAR file and change the classloader policy to PARENT_LAST.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top