本地 JacORB 调用:org.omg.CORBA.OBJECT_NOT_EXIST

Posted

技术标签:

【中文标题】本地 JacORB 调用:org.omg.CORBA.OBJECT_NOT_EXIST【英文标题】:Local JacORB call: org.omg.CORBA.OBJECT_NOT_EXIST 【发布时间】:2013-05-14 08:10:24 【问题描述】:

我们在遗留项目中使用 JacORB 2.3.0 和 Java 6 和 JBoss 5.1.0。 CORBA 基础架构和旧版本的 ORB、Java 和 JBoss 均已提供,不会更改。

在迁移项目之后(应用程序最初部署在单独的 J2EE 应用程序服务器中,但现在使用部分 Java EE 5 和一个独立的 Java 应用程序迁移到 JBoss 内的一个应用程序)我们现在有一个 CORBA 请求来自在 JBoss 中导致 org.omg.CORBA.OBJECT_NOT_EXIST 异常。

我通过编写一个小型测试类来验证这种情况,并让它通过独立的 Java 程序从 JBoss 外部运行一次,并通过 JBoss 的 JMX 控制台从 MBean 内部运行一次。在第一种情况下,一切正常,在第二种情况下,我得到了错误。

我已经进入了一些生成的代码和 ORB 代码,发现当存根区分本地和远程调用时,它会找到一个 POA 并进行本地调用,尽管该请求的相反部分在一个单独的 JVM 进程。

有什么想法会导致这种情况,我应该在哪里进行更深入的研究或者可以配置一些东西?即使是一种解决方法也可以(比如避免本地调用),因为这些调用对性能并不重要。

【问题讨论】:

@Arjan Tijms:在您编辑了我的一些帖子后,我明白 JEE 不是一个合适的术语,它应该是 Java EE。但在这个问题上,这是错误的,因为该应用程序确实是 J2EE 1.4 应用程序。 当然! ;) 通常,当人们明确表示 J2EE 而不是 Java EE 时,他们会说“J2EE 1.4”或“旧 J2EE”等。当然,在这种情况下,它应该仍然是 J2EE。 【参考方案1】:

事实证明,在本地注册了一个 CORBA 服务,但没有可用的实现。所以这是组装正确部署工件的问题。

【讨论】:

以上是关于本地 JacORB 调用:org.omg.CORBA.OBJECT_NOT_EXIST的主要内容,如果未能解决你的问题,请参考以下文章

jacorb 中的 InvalidName 异常

命名服务启动 Jacorb

Wildfly 中 Jacorb 的问题

使用带有 SSL 的 JacORB (Java/CORBA) 的客户端策略错误

带有 JacORB 客户端超时策略的“org.omg.CORBA.BAD_OPERATION:无法提取 ulonglong”

使用 CORBA 混淆 Android 应用程序