问题标签 [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 投票
1 回答
1164 浏览

winsock - 如何使用 SIO_GET_INTERFACE_LIST 控制代码重新排序 WSAIoctl 返回的网络接口

有没有办法规定 Win32 WinSockWSAIoctl函数SIO_GET_INTERFACE_LIST功能返回的网络接口的顺序?

背景:

我们有一个异构 CORBA 系统,其中在 Windows 上运行 ACE/TAO CORBA 实现的名称服务具有向其注册的基于 ACE/TAO 的服务,使用 IIOP.NET CORBA 实现的客户端需要使用这些服务。基于 IIOP.NET 的客户端位于单独的 Windows 机器上。ACE/TAO 机器有多个网络接口(客户端机器只能访问其中一个),因此有多个 IP 地址。

IIOP.NET 客户端可以连接到名称服务并检索它需要使用的已注册服务器 CORBA 对象的代理,但是当它尝试使用代理时会引发异常。

由于调试所花费的时间过多,我们得出的结论是,IIOP.NET 仅尝试连接到名称服务在请求服务时返回的 CORBA IOR 字符串中的第一个 IP 地址。IOR 字符串是对象的描述,包括其 IP 地址。大多数 CORBA 客户端将尝试使用 IOR 字符串中的所有地址与服务器对象连接,但看起来 IIOP.NET 并没有这样做。

生成 IOR 字符串的 ACE/TAO 代码使用WSAIoctl带有控制代码的 WinSock 命令SIO_GET_INTERFACE_LIST返回盒子上的网络接口列表,然后将它们全部添加到 IOR 字符串中。问题是第一个 IP 地址不在 IIOP 客户端使用的网络上,因此当 IIOP.NET 客户端尝试使用该 IP 地址连接到服务器对象时,它显然会失败并且永远不会尝试使用正确的 IP 地址。其他 CORBA 客户端(例如 ACE/TAO)会尝试所有 IP 地址,并且它们在此配置中工作。

由于我不是网络/CORBA 大神,因此尝试更改 ACE/TAO 或 IIOP.NET 对我来说是不现实的,我们有充分的理由在这个系统中有两个独立的网络,但如果第一个,默认 IP返回的地址WSAIOCtl是客户端需要的地址,这将解决问题,因为该 IP 地址将成为 IOR 字符串中的第一个 IP 地址,并且 IIOP.NET 将成功使用该 IP 地址。那么,是否有一种可靠的方法可以WSAIoctl以不同的顺序返回网络接口?不幸的是,我在 MSDN 上没有看到任何记录。

谢谢,

戴夫

0 投票
3 回答
557 浏览

glassfish - 异常消息在 glassfish 域之间的 IIOP 中丢失

我正在运行两个包含无状态会话 EJB 的 glassfish v2 域。在少数情况下,一个域中的 EJB 必须调用另一个域中的 EJB。

我的问题是,当被调用的 EJB 异常中止时,调用者没有收到异常消息,而是报告了一个对诊断问题毫无帮助的内部错误。发生的事情似乎是这样的:

  • 在传输层,org.omg.CORBA.portable.ApplicationException创建了 a,它已经丢失了除其类之外的异常的所有详细信息。
  • 在内部com.sun.jts.CosTransactions.TopCoordinator.get_txcontext(),事务 assroll back 的状态导致 aorg.omg.CosTransactions.Unavailable被抛出,它被包装并传递了几次,最终导致向用户显示此错误:

    /li>

我可以在这里做些什么来保存有关问题实际原因的信息吗?

0 投票
3 回答
2466 浏览

java - 在执行 jndi 查找时,如何找出应该使用的 SerialContextProvider?

今天我遇到了这个例外

我试图远程访问 ejb,有问题的代码是

我以前见过这个异常并修复它,但不记得我是如何做到的。我知道我必须为初始、上下文 url 和服务提供者或类似的东西设置一些环境变量。

事实上,我设法找到了上次我用来解决这个问题的代码,如下所示。

我的问题是,您如何找出要使用的初始上下文工厂?我已经为我们的数据库编写了一个在 glassfish v3 上运行的 ejb 模块,我从来没有得到任何暗示我当然应该使用 . com.sun.enterprise.naming.SerialInitContextFactory,我的意思是它是如此明显。谁制造了这些上下文工厂?谁决定我必须使用哪一个,为什么?为什么没有一个列表显示不同目的需要哪一个?似乎有人竭尽全力以最难以理解和最神秘的方式访问人类可能的资源。或者我在这里完全误解了一些东西,或者我缺乏大量的知识。

我非常感谢对这个主题的一些启发。

谢谢你们。

0 投票
2 回答
2583 浏览

jakarta-ee - 远程服务器重新启动后远程 EJB 的 InitialContext.lookup 失败

我们有一个设置,其中 EJB A 在服务器 A 上运行,另一个 EJB B 在服务器 B 上运行。EJB A 通过 IIOP 连接到 EJB B。此设置正常工作,但如果服务器 B 重新启动,EJB A 将失败,直到服务器 A 也重新启动。

问题是,如果重新启动服务器 B,则 EJB A 对 InitialContext.lookup 的所有调用都会失败,并出现“java.io.IOException: End-of-stream”异常,直到重新启动服务器 A。我无法找到有关我们的应用服务器 (GlassFish) 是否对 InitialContext.lookup 进行任何类型缓存的信息。在服务器重新启动之前,还有其他原因导致查找失败吗?如果 InitialContext.lookup 确实缓存连接,我将如何解决这个问题?

我们的服务器运行 Sun Application Server 9.1。查找实际上是通过 org.springframework.jndi.JndiTemplate 完成的,但堆栈跟踪表明 JndiTemplate 正在调用 InitialContext.lookup()。

感谢您的任何见解。

PS我应该澄清一下,我试图弄清楚是否有可能避免每次重新启动服务器B时都必须重新启动服务器A。

JndiTemplate 的定义(一些文本用 'x's 和 '#'s 涂黑)

以及堆栈跟踪(其中一部分替换为“[应用程序方法]”):

0 投票
1 回答
484 浏览

python - 在 IIOP 中使用 Python 或其他脚本语言

我有一个 IIOP 客户端的 java 版本,但我遇到了各种连接问题。我想在 python 中构建客户端,但没有找到任何可以让我使用的东西。有这样的事吗?

0 投票
1 回答
281 浏览

.net - corba idl 中的非标准命名空间

我正在使用 IIOP.NET 连接到 corba 服务器。这些服务器是企业级机器,由世界知名供应商部署,因此它们都实现了标准的 corba IDL 文件。更具体地说,它们都符合 3gpp 标准。

在 3gpp 标准 idl 文件中,pragma 前缀定义为3pggsa5.org。我使用了 IDL 到 CLS 编译器,它随 IIOP.NET 一起提供,来生成一个 dll。它使用相同的命名空间生成,即3pggsa5.org。然而,这个 dll 在 .NET 中是不可用的,因为命名空间以整数开头。

如果我尝试在 3 之前添加下划线,.NET 会识别出这一点,但由于接口或 IDL 现在已更改,它无法连接到 corba 服务器。我还在某处读到,从 corba idls 为 java 类生成的名称空间与 corba/idl 名称空间相同。所以这也应该是一个问题。当然3gpp标准是行业级标准,不可能不工作。我错过了什么吗?

请帮忙。谢谢。

0 投票
2 回答
2816 浏览

jboss - 在 JBoss 中实现 CORBA 接口

我正在寻找有关如何通过 CORBA 访问 EJB(或底层 MBean)的教程或任何其他信息。

这就是我发现的全部: http ://www.jboss.org/jbossiiop

我有一个现有的 CORBA 服务器(基于 java,但非标准),我想让它调用我的 JBoss MBean。该 MBean 已经使用 EJB (v2.1) 通过 RMI 公开。

当前的 AppServer 目标版本是 jboss-eap-4.3。


编辑:我希望我的问题太模糊而无法回答,所以这里有一个更新:

我希望在 JBoss 中运行的 EJB 注册到在远程单独服务器上运行的 Corba ORB。至少我认为我会。现有的 CORBA 客户端通过我试图通过 JBoss EJB 实现的定义的 IDL/接口连接到服务。此时,所述客户端连接到同一接口的多个实例,以通过该接口拉取信息并管理本地(同一进程)服务。我希望将 JBoss EJB 作为这个 CORBA IDL 的另一个实现加入。

我对 CORBA 的理解一开始就生疏且薄弱,所以我并没有走得太远。我可以很容易地在 JBoss 中运行 ORB,但是我不清楚如何设置绑定以便“旧版”CORBA ORB 可以找到它。我可以更改 JBoss 实现的任何部分来完成这项工作,但更改其他服务器很困难。

EJB 有没有办法向远程服务器(ala jndi)注册自己?现有客户端是否能够在不添加 jboss 特定类的情况下连接到 Jacorb?

0 投票
1 回答
484 浏览

http - 在哪里可以找到超文本 ORB 间协议 (HTIOP) 的规范?

根据维基百科,HTIOP 是基于 HTTP 的 IIOP 的实现。IIOP 是 CORBA 的 GIOP(通用 ORB 间协议)在 TCP/IP 上的一个特定实例。

但是,我在网络上的任何地方都找不到该协议的规范!

0 投票
1 回答
1159 浏览

java - 单播与便携式远程对象

java.rmi.server.UnicastRemoteObject和之间的基本区别是什么java.rmi.PortableRemoteObject

我知道一个用于 JRMP,另一个用于 IIOP,但是任何人都可以用外行的语言来解释它。我是 Java 新手。我们也可以为 JRMP 使用 Protable Remote Object 吗?如果不是,为什么?

0 投票
0 回答
302 浏览

c# - C# Remoting 中的自定义主循环

我正在使用 IIOP.NET 在 C# 中与 C++ 进行通信。目前 C++ 调用可以随时发生,因为 C# Remoting Framework 使用它自己的线程。

我不想要那个。

其他一些中间件给了我一个回调,我只被允许在这个回调期间执行 CORBA 函数(并且可能在同一个堆栈上,所以简单地同步线程是行不通的)。

所以 :

有没有办法在 C# Remoting 中做类似的事情:

而不是Thread.Sleep(Timeout.Infinite)? 或者也许还有其他方法?