4

我有一个简单的“Hello world”C++/Java应用程序CORBA。服务器写在C++,客户端写在Java。我使用 omniORBsomniNames作为名称服务。

我想omniNames在我的(Ubuntu)上运行我的和服务器,localhost 并在我的本地主机 Ubuntu 上安装的 VirtualBox 中的 Windows XP SP3 上运行我的客户端。

(我的意思是:在我的本地主机上,我安装了 Ubuntu 操作系统,在 Ubuntu 中,我安装了带有 Windows XP SP3 'inside' 的 VirtuaBox。)

我试过这个:

  1. 我在我的 Ubuntu 本地主机上运行了 omniNames,:omniNames -start
  2. 我运行我的服务器,也在同一台计算机上,带有 Ubuntu 操作系统的本地主机: ./server -ORBInitRef NameService=corbaloc::localhost:2809/NameService
  3. 我在网站上查看了我的 localhosts ip 地址:http ://whatismyipaddress.com/并写下来,例如:xxxx
  4. 在 VirtualBox 上打开 Windows XP,运行客户端:java client -ORBInitRef NameService=corbaloc::x.x.x.x:2809/NameService

但出现错误:

C:\Temp\java>java client -ORBInitRef NameService=corbaloc:212.106.19.209:2809/Na
meService
pač 10, 2012 3:51:17 PM com.sun.corba.se.impl.naming.namingutil.CorbalocURL badA
ddress
WARNING: "IOP00110603: (BAD_PARAM) Bad host address in -ORBInitDef"
org.omg.CORBA.BAD_PARAM:   vmcid: SUN  minor code: 603  completed: No
        at com.sun.corba.se.impl.logging.NamingSystemException.insBadAddress(Unk
nown Source)
        at com.sun.corba.se.impl.logging.NamingSystemException.insBadAddress(Unk
nown Source)
        at com.sun.corba.se.impl.naming.namingutil.CorbalocURL.badAddress(Unknow
n Source)
        at com.sun.corba.se.impl.naming.namingutil.CorbalocURL.<init>(Unknown So
urce)
        at com.sun.corba.se.impl.naming.namingutil.INSURLHandler.parseURL(Unknow
n Source)
        at com.sun.corba.se.impl.resolver.INSURLOperationImpl.operate(Unknown So
urce)
        at com.sun.corba.se.impl.resolver.ORBInitRefResolverImpl.resolve(Unknown
 Source)
        at com.sun.corba.se.impl.resolver.CompositeResolverImpl.resolve(Unknown
Source)
        at com.sun.corba.se.impl.resolver.CompositeResolverImpl.resolve(Unknown
Source)
        at com.sun.corba.se.impl.orb.ORBImpl.resolve_initial_references(Unknown
Source)
        at client.main(client.java:28)

C:\Temp\java>

可以这样连接客户端和服务器吗?我该怎么做?我在 Windows XP 上只有客户端文件 - 仅此而已 - 没有名称服务,没有服务器文件,只有客户端程序。

4

1 回答 1

7

我在网站上查看了我的 localhosts ip 地址:http ://whatismyipaddress.com/并写下来,例如:xxxx

这不太可能是要使用的正确 IP 地址。您如何为 VirtualBox VM 配置网络?如果您使用默认的 NAT 网络,则访客无法与主机通信,因此您需要配置“仅主机”网络,然后使用该网络主机端的 IP 地址(您在告诉客户端在哪里可以找到 ORB 时,应该能够ifconfig在 Ubuntu 主机上找到使用,寻找接口)。vboxnet您可能还会发现需要在主机上添加防火墙规则以允许虚拟接口上的传入连接。

请注意,您可以为同一个 VM 配置多个网络接口,因此如果 VM 需要访问 Internet 以及 ORB,那么使用两个接口设置它是完全可以的,一个 NAT 和另一个主机 -只要。

于 2012-10-10T14:58:15.357 回答