문제

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.

올바른 솔루션이 없습니다

다른 팁

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.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top