问题标签 [iiop]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
6236 浏览

websphere - org.omg.CORBA.TRANSIENT:初始和转发的 IOR 不可访问

我正在使用 Lotus Notes API (NCSOW.jar) 从我的 java 类连接到远程 Domino 服务器,然后写入 Lotus Notes 数据库。但是我收到一个特定的错误,表明它可能无法连接到它。

这是导致该错误的行。URL 是 Domino 服务器名称,用户名、密码是 domino 服务器凭证。会话会话 = NotesFactory.createSession(props.getProperty("LotusNotes.URL"), props.getProperty("LotusNotes.UID"), props.getProperty("LotusNotes.PWD"));

我可以从我的本地机器上用一个独立的 java 程序连接它。但是在我们的 QA 机器上的特定 websphere 服务器(v6.1)上,出现了这个错误。我们试图检查端口、防火墙,这方面一切都很好。我们能够从该服务器机器正确连接到远程 Domino 服务器机器。

以下是错误的堆栈跟踪。

org.omg.CORBA.TRANSIENT:初始和转发 IOR 不可访问:转发 IOR 失败:ORB_CONNECT_ERROR (5) - 无法获取服务器分包:org.omg.CORBA.INTERNAL:CREATE_LISTENER_FAILED_4 vmcid:0x49421000 次要代码:56 已完成:否初始 IOR 失败:ORB_CONNECT_ERROR (5) - 无法获取服务器分包:org.omg.CORBA.INTERNAL:CREATE_LISTENER_FAILED_4 vmcid:0x49421000 次要代码:56 已完成:否 vmcid:IBM 次要代码:E07 已完成:否

有没有人对此有任何建议。

谢谢 Mrutyunjay

0 投票
1 回答
400 浏览

rmi - 将 Glassfish 与 IIOP 结合使用时的完整协议层次结构是什么

设置是Glassfish 2.1.1和 Java 独立客户端。通过IIOP进行连接。我们的客户在网络上产生了大量的流量,我正试图找出这些流量的来源。

据我了解,协议层次结构应如下所示

直到 GIOP,这是我在 Wireshark 中看到的,但 GIOP 消息的有效负载尚不清楚。

不幸的是,Wireshark 没有剖析 GIOP-Messages 的有效负载。我认为 GIOP 消息应该包含用 CORBA CDR 序列化的 Java 对象,因为那是 CORBA 序列化。(毕竟对于非 Java 客户端,我必须生成 IDL,所以 CDR 应该在任何地方使用)。

我在 Wireshark 中看到的是很多很多

接着是一个十六进制字符串和几个字节的二进制数据,然后是 XRMI:.....

从这里我想它是 RMI,我在 IIOP 上有 RMI,给了我

但是,如果 GIOP 有效负载是 RMI,那么 CDR 适合哪里。

如何解释 GIOP 消息的有效负载,在哪里可以找到 RMI over IIOP 的规范?

0 投票
1 回答
287 浏览

interop - CORBA 服务器和客户端的 IDL 允许有什么区别?

到目前为止,我认为我所知道的是,CORBA 规范本身不允许服务器程序使用的 IDL 和客户端程序使用的 IDL 之间存在任何差异。

然而,在实践中,某些差异必然会(相当)普遍起作用,因为底层的通信机制很可能是 GIOP(至少是 IIOP),并且某些差异必然无法通过 IIOP 检测到。

我想确定的是,只要使用 GIOP/IIOP,在任意 ORB 之间普遍允许服务器和客户端 IDL 之间存在哪些差异。

例如:到目前为止,我认为它适用于:

  • 只要不触及客户端 IDL 知道的类型或将任何未知的新类型发送回客户端,就可以将任何类型/接口添加到服务器 IDL。
  • 将方法添加到服务器端的现有接口——客户端应该能够继续使用此接口调用对象,即使他的 IDL 没有列出所述方法。(这似乎在这里得到了肯定的回答。
  • 只要客户端永远不会看到这个新值,就在枚举的末尾添加一个成员。
  • 将成员添加到 union,只要客户端永远不会看到此 Union 类型并将鉴别器设置为新值。

我的目标是得到一个可以在现有 IDL 中做的事情的简短列表,用新的东西扩展“服务器”,而不必用修改后的 IDL 重新编译现有的客户端。

0 投票
1 回答
1153 浏览

jakarta-ee - Glassfish 3.1.2.2:IIOP1002:主要传播:在主题中找不到主要信息

我正在尝试找出导致 glassfish 中一条恼人消息污染我们日志文件的原因。

为了简化我们的设置,我们有 2 个 glassfish 服务器运行 3.1.2.2。

服务器 A 在其上部署了一个 Web 服务,使用 Web 服务中的角色以及 sun-ejb-jar.xml 和 sun-application.xml 中的映射定义的基于证书的安全性。

服务器 B 上部署了一个远程 EJB,没有配置安全性。

在服务器 B 上调用远程 EJB 时,从服务器 A 上的 Web 服务使用如下代码:

服务器 A 上的日志记录了以下内容,但 EJB 调用按预期工作。

有没有人遇到过这个错误并且知道如何解决这个问题?

消息上的Oracle 文档不是很有帮助。

IIOP1002 主体传播:在主题中找不到主体信息

原因:主题中没有找到主体信息

行动:请检查身份传播的配置设置

0 投票
1 回答
1263 浏览

java - 如何在 Lotus Domino 数据库上使用 openWithFailover()?

我有一些使用 Java Domino API(使用 NCSO.jar)通过 IIOP 与 Domino 数据库连接的 Java 代码。现在的一个新要求是,如果正在连接的服务器是集群的,那么应该可以利用这一点并在当前连接的服务器出现故障时切换到集群中的故障转移服务器。

不幸的是,Domino Java API 完全是晦涩难懂的,在本地和通过 IIOP 远程使用 API 之间存在细微差别,很少有真正清晰的解释和奇怪的差异,具体取决于您为方法提供的参数。

我设法从这里收集到的一些信息...... openWithFailoverMethod 是否有效?

我还查看了 IBM 信息中心上的文档。

我尝试的第一件事是:

的第一个参数getDatabase,服务器名称,对于 IIOP 操作显然必须为 null。当它已经在会话中时,如何有必要在openWithFailover方法中再次指定服务器名称,我对此感到相当困惑,但我想您可以使用会话连接到集群,然后在 open 方法中指定主服务器。但是,为什么您需要提供两次数据库名称并不十分清楚。最后一个参数表明如果无法访问数据库,则不应创建数据库(省略它,默认为 true;多么美妙)。

不幸的是,这在我脸上吐出了异常NotesException: This database object is already open as E:\Lotus\Domino\data\mail-in\EDITEST.nsf。它发生在openWithFailover方法上。

显然,第一次调用getDatabase已经打开它,并且没有关闭方法或仅获取对象而不实际打开它的选项。该类Database是一个接口,因此没有获取此类对象的静态方法或实例化它的方法。我检查了一下,发现唯一的选择是openDatabase在课堂上使用DbDirectory。猜猜这是做什么的。现在该方法确实有一个带有布尔值的替代方法,它表明您是否希望使用故障转移,但根据文档,对于 IIOP 操作它总是错误的。

根据this page ,您可以通过使用两个空参数调用来获取一个空Database对象。getDatabase所以我尝试了这个:

哪个及时给了我例外NotesException: A database name must be provided。将第二行更改为Database db = session.getDatabase(null, null);没有任何区别。

我只能假设远程操作必须使用数据库名称?但是,远程连接时如何使用故障转移呢?还是我做错了?也许我应该连接到集群而不是服务器本身,并且故障转移会自动处理?或者远程连接显然不可能进行故障转移?Notes 客户端可以做到这一点,所以我希望它可以在您自己的 Java 代码中实现。

有人请在这里帮助我,因为文档没有提供足够的信息。

0 投票
3 回答
4815 浏览

java - CORBA :: 使用 IIOP 获取客户端 ORB 地址和端口

我在 CORBA 中有使用 IIOP 协议的应用程序,我正在使用 JDK 6 的 Java IDL 组件,这是另一个 ORB 实现。

用Java语言实现客户端和服务器。

JDK ORB 实现中是否有任何方法可以从服务器 (ORB) 代码中获取客户端 ORB 的主机和端口?

或者

有什么方法可以使用 IIOP 协议,让客户端获取主机和端口?

这是我们正在做的识别客户以跟踪谁被请求

0 投票
2 回答
360 浏览

java - 如何诊断 JBoss IIOP 存根生成、类加载问题?

我正在将一个运行在 JBoss 6.1 上的十年前的 EJB2 应用程序从 JNP 协议迁移到 CORBA RMI/IIOP,因为我想使用 ORB PortableInterceptor。

第一个 JBoss 抱怨 org.jboss.iiop.rmi.RMIIIOPViolationException 我现在已经修复了。

现在 JBoss 的 WebCL servlet 无法将我的 Home 和 Remote 接口的 Stub 传递给客户端,我不知道可能出了什么问题。我唯一剩下的假设是 RMIC 编译器会静默失败。我得到的唯一错误消息是

我应该如何着手获取此类加载失败的原因并修复它?

0 投票
0 回答
941 浏览

java - IIOP 协议管理器失败 Glassfish 3.1.2

在 Glassfish 启动期间,出现以下故障。我确实在 所在vbjorb.jar的域的类路径中有org.omg.CORBA.InterfaceDef

0 投票
1 回答
517 浏览

jakarta-ee - 从 JNDI 查找 websphere 队列

我需要从 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 文件。

代码如下。

这不起作用,因为我作为远程客户端访问它。因此我添加了这个,

这目前工作正常。然后我删除了上面的行并将目标 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 投票
1 回答
570 浏览

java - CORBA IDL 哈希图

有没有这样一种方法可以编写 CORBA IDL 来为 Hashmap 生成存根以存储以下内容?