4

のシンプルな「Helloworld」C++/JavaアプリがありCORBAます。サーバーはでC++、クライアントはで書き込まれますJavaomniNamesネームサービスとしてomniORBを使用しています。

私の(Ubuntu)omniNamesでサーバーをlocalhost 実行し、ローカルホストのUbuntuにインストールされているVirtualBoxのWindowsXPSP3でクライアントを実行したいと思います。

(つまり、ローカルホストにUbuntu OSをインストールし、UbuntuにWindows XP SP3を「内部」にインストールしたVirtuaBoxをインストールしました。)

私はこれを試しました:

  1. UbuntuローカルホストでomniNamesを実行しました:omniNames -start
  2. 同じコンピューターで、UbuntuOSを使用してローカルホストでサーバーを実行しました。 ./server -ORBInitRef NameService=corbaloc::localhost:2809/NameService
  3. サイトでローカルホストのIPアドレスを確認しました:http ://whatismyipaddress.com/そしてそれを書き留めました。例:xxxx
  4. VirtualBoxでWindowsXPをオンにし、クライアントを実行しました。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>

クライアントとサーバーをそのように接続することは可能ですか?これはどのようにすればよいですか?WindowsXPにはクライアントファイルしかありません。それ以上はありません。ネームサービスもサーバーファイルもありません。クライアントプログラムだけです。

4

1 に答える 1

7

サイトでローカルホストのIPアドレスを確認しました:http ://whatismyipaddress.com/そしてそれを書き留めました。例:xxxx

これが正しいIPアドレスである可能性はほとんどありません。VirtualBox VMのネットワークをどのように構成しましたか?デフォルトのNATネットワークを使用している場合、ゲストはホストと通信できないため、代わりに「ホストのみ」のネットワークを構成してから、このネットワークのホスト側のIPアドレスを使用する必要があります(クライアントにORBの場所を指示するときにifconfig、Ubuntuホストでを使用して見つけることができるはずです。インターフェイスを探してください。vboxnetまた、仮想インターフェイスでの着信接続を許可するために、ホストマシンにファイアウォールルールを追加する必要がある場合もあります。

同じVMに対して複数のネットワークインターフェイスを構成できることに注意してください。したがって、VMがインターネットとORBにアクセスする必要がある場合は、2つのインターフェイス(1つはNAT、もう1つはホスト)で設定しても問題ありません。それだけ。

于 2012-10-10T14:58:15.357 に答える