我需要从JNDI(Configured SIB)查找一个websphere 7队列。首先,我编写了一个访问远程websphere服务器的客户端程序。我添加了com.ibm.ws.admin.client,com.ibm.ws.runtime,com.ibm.ws.sib.client.thin.jms和com.ibm.ws.webservices.thinclient jar文件。
代码如下。
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");
由于我将其作为远程客户端访问,因此无法正常工作。因此我添加了这个,
env.put("java.naming.corba.orb",org.omg.CORBA.ORB.init((String[])null,null));
现在这个工作正常。然后我删除了上面的行并将目标JDK移动到IBM JDK。在这种情况下,它也没有任何问题。
当我需要在服务器程序中访问上述队列时遇到的实际问题。它在单独的JVM上运行。当我尝试访问远程JNDI队列时,它给我一个类强制转换异常。我相信它是因为它加载了默认的sun ORB实现而不是IBM。我添加了com.ibm.ws.orb jar,但仍然没有运气。它加载了Sun ORB。因此它给出了类强制转换异常。
如上所述,我无法加载org.omg.CORBA.ORB。有什么方法可以运行吗?我错过了什么吗?任何来自Websphere 8.5的反馈也是受欢迎的。
注意:这不是Websphere MQ。我指的是Websphere应用服务器队列。
答案 0 :(得分:0)