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

标签 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?

最佳答案

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

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

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

关于java - 如何从 Websphere 服务器连接到 Weblogic JMS?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4373078/

相关文章:

java - 为什么输出是 'No console' 到 java 中的以下代码?

Java 存储库 - Spring Data JPA

spring-boot - @JmsListener 并持久化到数据库

java - ActiveMQ 设置 - 无法将消息发送到队列(错误 - java.io.IOException : Unknown data type: 47)

java - 连续接收来自 Activemq 的消息

java - Freemarker 模型将时间戳以毫秒为单位转换为日期

java - 合并排序在java中对 double 进行排序。具有可比性的问题

c# - C# 中的 4 位枚举

java - 在原始数组上调用 amap 时 Clojure 失败

c# - 如何从 C# 方法返回 JavaScript 'native' 数组?