• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 8218
  • Last Modified:

Websphere Remote Jndi Lookup - ClassCastException javax.naming.Reference cannot be cast to javax.jms.QueueConnectionFactory


Someone has asked a similar question to this previously, but they didn't really reveal how they solved it.

I'm doing a Remote JNDI Lookup for a QueueConnectionFactory. The QueueConnectionFactory and the ear I'm working with are deployed on Websphere. Im also using Websphere MQ. I'm pretty sure my InitialContext is set up correctly. It retrieves my queues without problem.

However, when I do a lookup of the QueueConnectionFactory, my attempt to cast the object returns a ClassCastException.

Exception in thread "main" java.lang.ClassCastException: javax.naming.Reference cannot be cast to javax.jms.QueueConnectionFactory at queue.RemoteExecutionServerRunner.setUpWASQueue(RemoteExecutionServerRunner.java:101)
at queue.ExecutionServerTest.main(ExecutionServerTest.java:23)

Googling around leads me to things its something to do with the classpath.

Any help would be greatly appreciated.

Thank you
jndiContext = getJndiContext();
connectionFactory = (QueueConnectionFactory)   jndiContext.lookup("jms/BRESQueueConnectionFactory");
sendQueue = (Queue) jndiContext.lookup("queue/BRESQueueIn");
replyQueue = (Queue) jndiContext.lookup("queue/BRESQueueOut");
private Context getJndiContext() {
	Context ctx = null;
	try {
		Properties properties = new Properties();
		properties.setProperty(Context.INITIAL_CONTEXT_FACTORY, "com.ibm.websphere.naming.WsnInitialContextFactory");
		properties.setProperty(Context.PROVIDER_URL, "corbaloc:iiop:idassysapp2:2811");
		properties.setProperty("com.ibm.CORBA.ORBInit", "com.ibm.ws.sib.client.ORB");
		ctx = new InitialContext(properties);
	} catch (NamingException e) {
	return ctx;

Open in new window

  • 3
  • 3
3 Solutions
I would suggest using InitialContext as return type.

Make sure you have the IBM JDK libraries on the classpath.

And eventually check this link:

fuzzydunlopAuthor Commented:
Hi Tuno,

Thanks for the response.

I have three IBM jars on my application build path.


Are these enough? I've tried adding all the jars from my Websphere 6 installation directory to the build path but that doesn't seem to solve it.

How do you execute this. On the server or unit test?

Do you use the IBM JVM?

Did you try InitialContext as return type?
Keep up with what's happening at Experts Exchange!

Sign up to receive Decoded, a new monthly digest with product updates, feature release info, continuing education opportunities, and more.

fuzzydunlopAuthor Commented:
I've written a standalone application, accessing Websphere remotely. My class is executed within a main method.

I did try the InitialContext as a return type, the error still occurs. I'm using the Sun JVM.
I am looking at the similar code I am using. Nothing wrong. Should be working.

Try using the IBM JVM, maybe that this works. Although same mechanism should be working with Sun JVM.

I was also looking around and also found this:

fuzzydunlopAuthor Commented:

Thanks for the link. I have allowed access to the Internal Server Classes on the Websphere Application Server.

I have managed to figure it out. It's not a very elegant solution but it works. This probably ties in with using the IBM JVM, but I imported a host of Jars from the Application Server into my client application. The directories were:


Having these jars on my application classpath seemed to fix the problem.

Hope this helps anyone who comes across this problem. Thanks for the help Tuno.
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Free Tool: ZipGrep

ZipGrep is a utility that can list and search zip (.war, .ear, .jar, etc) archives for text patterns, without the need to extract the archive's contents.

One of a set of tools we're offering as a way to say thank you for being a part of the community.

  • 3
  • 3
Tackle projects and never again get stuck behind a technical roadblock.
Join Now