我需要从JNDI(配置的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文件。从JNDI查找websphere队列
代码如下。
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应用程序服务器队列。
显然我需要知道我是否在上面正确地执行操作。我相信应该有其他方法来实现这一点。 – Dilshan