如何从Websphere服务器连接到Weblogic JMS?

时间:2010-12-07 03:17:53

标签: java interop jms weblogic websphere

我使用以下方法创建了一个小型独立客户端:

weblogic.jndi.WLInitialContextFactory
t3://weblogic-server:7001

jms.xyz.jmsXyzCf
jms/xyz/jmsXyzLogQueue

它完美无缺。

尝试从我的websphere服务器运行相同的代码时,我得到NullPointerException。我明白这是因为我在类路径中没有weblogic类:

Caused by: java.lang.NullPointerException
at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:235)
at javax.naming.InitialContext.initializeDefaultInitCtx(InitialContext.java:327)
at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:357)
at javax.naming.InitialContext.internalInit(InitialContext.java:295)
at javax.naming.InitialContext.(InitialContext.java:212)

当我尝试添加它们时,我会收到一些“安全”错误

Current Java 2 Security policy reported a potential violation of Java 2 Security Permission. 

java.security.AccessControlException: Access denied (java.lang.RuntimePermission exitVM.0)
at java.security.AccessController.checkPermission(AccessController.java:108)
at java.lang.SecurityManager.checkPermission(SecurityManager.java:533)
at com.ibm.ws.security.core.SecurityManager.checkPermission(SecurityManager.java:211)
at java.lang.SecurityManager.checkExit(SecurityManager.java:745)
at java.lang.Runtime.exit(Runtime.java:100)
at java.lang.System.exit(System.java:297)

作为最后一个资源,我尝试使用websphere自己的上下文工厂进行连接:com.ibm.websphere.naming.WsnInitialContextFactory但当然它失败了,因为它不理解t3。

问题

如何从Websphere连接到weblogic JMS?

1 个答案:

答案 0 :(得分:0)

WebSphere并不完全以使用第三方实现运行系统级功能(例如JNDI)的友好性而闻名。最后,您必须使用WebSphere的类(包括WebSphere的InitialContextFactory实现)。

在WebSphere下运行时,您不需要(实际上,不应该)显式指定InitialContextFactory实现; WebSphere可以(并且应该)自己完成它。

如果我理解正确,您正尝试从WebSphere服务器进程中连接到WebLogic JMS管理对象。我能想到的唯一方法就是获取WebLogic JMS的实现类并将其添加为JMS提供程序,然后使用JNDI进行查找。不过,我很乐意接受纠正。