我有一个带有 CORBA 的简单 calc C++/Java 应用程序。服务器用 C++ 编写,客户端用 Java 编写。我使用omniORBs omniNames 作为名称服务。
我想在我的本地主机(Ubuntu)上运行我的 omniNames 和服务器,并在我的本地主机 Ubuntu 上安装的 VirtualBox 中的 Windows XP SP3 上运行我的客户端。
(我的意思是:在我的本地主机上,我安装了 Ubuntu 操作系统,在 Ubuntu 中,我安装了带有 Windows XP SP3 'inside' 的 VirtuaBox。)
我终于做到了,并host-only
在 VirtualBox 的帮助下设置了 optinon:https ://superuser.com/questions/429405/how-can-i-get-virtualbox-to-run-with-a-hosts-only-adapter topic . 现在我还有其他问题。我的客户终于看到了我的服务器,甚至可以连接到它并向他发送消息,但是从服务器接收答案时出现问题:(这次我的应用程序是一个简单的计算):
C:\Temp\java>java client -ORBInitRef NameService=corbaloc::192.168.56.1:2809/NameService Choose:
1.Add
2.Sub
3.Mul
4.Div
> 3
> Pass number:
> 2
> Pass number:
> 4
> pač 12, 2012 3:36:58 PM com.sun.corba.se.impl.transport.SocketOrChannelConnectio nImpl <init> WARNING: "IOP00410201: (COMM_FAILURE) Connection failure: socketType: IIOP_CLEAR
_TEXT; hostname: 127.0.0.1; port: 41431" org.omg.CORBA.COMM_FAILURE: vmcid: SUN minor code: 201 completed: No
at com.sun.corba.se.impl.logging.ORBUtilSystemException.connectFailure(U nknown Source)
at com.sun.corba.se.impl.logging.ORBUtilSystemException.connectFailure(U nknown Source)
at com.sun.corba.se.impl.transport.SocketOrChannelConnectionImpl.<init>( Unknown Source)
at com.sun.corba.se.impl.transport.SocketOrChannelConnectionImpl.<init>( Unknown Source)
at com.sun.corba.se.impl.transport.SocketOrChannelContactInfoImpl.create Connection(Unknown Source)
at com.sun.corba.se.impl.protocol.CorbaClientRequestDispatcherImpl.begin Request(Unknown Source)
at com.sun.corba.se.impl.protocol.CorbaClientDelegateImpl.request(Unknow n Source)
at org.omg.CORBA.portable.ObjectImpl._request(Unknown Source)
at _CalcStub.mul(_CalcStub.java:64)
at client.main(client.java:65) Caused by: java.net.ConnectException: Connection refused: connect
at sun.nio.ch.Net.connect0(Native Method)
at sun.nio.ch.Net.connect(Unknown Source)
at sun.nio.ch.Net.connect(Unknown Source)
at sun.nio.ch.SocketChannelImpl.connect(Unknown Source)
at java.nio.channels.SocketChannel.open(Unknown Source)
at com.sun.corba.se.impl.transport.DefaultSocketFactoryImpl.createSocket (Unknown Source)
... 8 more
C:\Temp\java>
其中 192.168.56.1 是 VirtualBox 主机专用 IP 地址。请帮助:) 在我在这里发布的示例中,服务器的答案应该是 8(因为我们都知道 2*4 = 8;)
好的朋友,很抱歉打扰你们:)我找到了答案:我将这些行添加到我的/etc/network/interfaces
文件中:
allow-hotplug eth0
iface eth0 inet dhcp
欢呼:D